YYPOST群发软件 发表于 6 天前

数据库MySQL功能支持创建表插入中文数据查询删除功能例子

数据库MySQL功能支持创建表插入中文数据查询删除功能例子





//🍎交流QQ群711841924群一,苹果内测群,528816639
// 中文数据库操作脚本
// 支持创建表、插入中文数据、查询、删除等功能

printl("===== 中文数据库操作脚本 =====");

var conn = null;
var pstmt = null;

/**
* 连接数据库
*/
function connectDatabase() {
    try {
      var url = "jdbc:mysql://38.10.31.18:3306/aabcf";
      var user = "aabcf";
      var password = "s2iPJeEDSKExJTMN";
      var params = "?useSSL=false&characterEncoding=utf8&connectTimeout=5000";
      
      printl("正在连接数据库...");
      conn = mysql.getConnection(url, user, password);
      printl("✅ 数据库连接成功");
      return true;
    } catch (e) {
      printl("❌ 数据库连接失败: " + e.message);
      return false;
    }
}

/**
* 创建员工表
*/
function createEmployeeTable() {
    try {
      var sql = "CREATE TABLE IF NOT EXISTS 员工信息 (" +
                  "员工编号 INT AUTO_INCREMENT PRIMARY KEY," +
                  "姓名 VARCHAR(50) NOT NULL," +
                  "部门 VARCHAR(50)," +
                  "职位 VARCHAR(50)," +
                  "入职日期 DATE," +
                  "薪资 DECIMAL(10,2)" +
                  ") ENGINE=InnoDB DEFAULT CHARSET=utf8";
                  
      var stmt = conn.createStatement();
      stmt.executeUpdate(sql);
      printl("✅ 员工信息表创建成功");
      stmt.close();
      return true;
    } catch (e) {
      printl("❌ 创建员工信息表失败: " + e.message);
      return false;
    }
}

/**
* 插入中文员工数据
*/
function insertEmployeeData() {
    try {
      var employees = [
            {姓名: "张三", 部门: "技术部", 职位: "工程师", 入职日期: "2023-01-15", 薪资: 8000.00},
            {姓名: "李四", 部门: "市场部", 职位: "经理", 入职日期: "2022-05-20", 薪资: 12000.00},
            {姓名: "王五", 部门: "人事部", 职位: "专员", 入职日期: "2023-03-10", 薪资: 6500.00},
            {姓名: "赵六", 部门: "财务部", 职位: "会计师", 入职日期: "2021-11-08", 薪资: 9500.00},
            {姓名: "钱七", 部门: "技术部", 职位: "架构师", 入职日期: "2020-08-22", 薪资: 15000.00}
      ];
      
      var sql = "INSERT INTO 员工信息 (姓名, 部门, 职位, 入职日期, 薪资) VALUES (?, ?, ?, ?, ?)";
      pstmt = conn.prepareStatement(sql);
      
      var insertedRecords = 0;
      for (var i = 0; i < employees.length; i++) {
            var emp = employees;
            pstmt.setString(1, emp.姓名);
            pstmt.setString(2, emp.部门);
            pstmt.setString(3, emp.职位);
            pstmt.setDate(4, java.sql.Date.valueOf(emp.入职日期));
            pstmt.setBigDecimal(5, new java.math.BigDecimal(emp.薪资.toFixed(2)));
            
            pstmt.executeUpdate();
            insertedRecords++;
      }
      
      printl("✅ 成功插入 " + insertedRecords + " 条员工记录");
      return true;
    } catch (e) {
      printl("❌ 插入员工数据失败: " + e.message);
      return false;
    }
}

/**
* 查询员工数据
*/
function queryEmployeeData() {
    try {
      var sql = "SELECT 员工编号, 姓名, 部门, 职位, 入职日期, 薪资 FROM 员工信息 ORDER BY 员工编号";
      var stmt = conn.createStatement();
      var rs = stmt.executeQuery(sql);
      
      printl("\n=== 员工信息查询结果 ===");
      printl("员工编号\t姓名\t\t部门\t\t职位\t\t入职日期\t\t薪资");
      printl("------------------------------------------------------------------------");
      
      var count = 0;
      while (rs.next()) {
            var id = rs.getInt("员工编号");
            var name = rs.getString("姓名");
            var dept = rs.getString("部门");
            var position = rs.getString("职位");
            var hireDate = rs.getDate("入职日期");
            var salary = rs.getBigDecimal("薪资");
            
            // 格式化输出
            var nameStr = name + "\t\t";
            if (name.length >= 3) nameStr = name + "\t";
            
            var deptStr = dept + "\t\t";
            if (dept.length >= 3) deptStr = dept + "\t";
            
            printl(id + "\t\t" + nameStr + deptStr + position + "\t\t" + hireDate + "\t" + salary);
            count++;
      }
      
      printl("------------------------------------------------------------------------");
      printl("总共查询到 " + count + " 条员工记录\n");
      
      rs.close();
      stmt.close();
      return true;
    } catch (e) {
      printl("❌ 查询员工数据失败: " + e.message);
      return false;
    }
}

/**
* 删除特定员工记录
*/
function deleteEmployeeByName(name) {
    try {
      var sql = "DELETE FROM 员工信息 WHERE 姓名 = ?";
      pstmt = conn.prepareStatement(sql);
      pstmt.setString(1, name);
      var rowsAffected = pstmt.executeUpdate();
      printl("✅ 删除姓名为 '" + name + "' 的员工记录,影响行数: " + rowsAffected);
      return true;
    } catch (e) {
      printl("❌ 删除员工记录失败: " + e.message);
      return false;
    }
}

/**
* 更新员工薪资
*/
function updateEmployeeSalary(name, newSalary) {
    try {
      var sql = "UPDATE 员工信息 SET 薪资 = ? WHERE 姓名 = ?";
      pstmt = conn.prepareStatement(sql);
      pstmt.setBigDecimal(1, newSalary);
      pstmt.setString(2, name);
      var rowsAffected = pstmt.executeUpdate();
      printl("✅ 更新姓名为 '" + name + "' 的员工薪资为 " + newSalary + ",影响行数: " + rowsAffected);
      return true;
    } catch (e) {
      printl("❌ 更新员工薪资失败: " + e.message);
      return false;
    }
}

/**
* 关闭数据库连接
*/
function closeConnection() {
    try {
      if (pstmt != null) {
            pstmt.close();
      }
      if (conn != null) {
            conn.close();
      }
      printl("✅ 数据库连接已关闭");
    } catch (e) {
      printl("❌ 关闭连接时出错: " + e.message);
    }
}

// 主程序执行流程
try {
    // 1. 连接数据库
    if (!connectDatabase()) {
      throw new Error("数据库连接失败");
    }
   
    // 2. 创建员工表
    if (!createEmployeeTable()) {
      throw new Error("创建员工表失败");
    }
   
    // 3. 插入员工数据
    if (!insertEmployeeData()) {
      throw new Error("插入员工数据失败");
    }
   
    // 4. 查询所有员工记录
    queryEmployeeData();
   
    // 5. 更新员工薪资
    printl("=== 更新张三的薪资 ===");
    updateEmployeeSalary("张三", new java.math.BigDecimal("9500.00"));
   
    // 6. 再次查询所有员工记录
    queryEmployeeData();
   
    // 7. 删除一名员工
    printl("=== 删除员工王五 ===");
    deleteEmployeeByName("王五");
   
    // 8. 最后查询所有员工记录
    queryEmployeeData();
   
} catch (e) {
    printl("❌ 程序执行过程中发生错误: " + e.message);
} finally {
    // 确保连接被关闭
    closeConnection();
}

printl("===== 中文数据库操作脚本结束 =====");


页: [1]
查看完整版本: 数据库MySQL功能支持创建表插入中文数据查询删除功能例子