假设表名为 'my_table',字段分别为 id(自增长)、name、age、gender、address。以下是 Java 代码实现批量插入并回显 id 的操作:

  1. 定义存储过程
CREATE PROCEDURE insert_my_table(IN name VARCHAR(50), IN age INT, IN gender VARCHAR(10), IN address VARCHAR(100), OUT id INT)
BEGIN
INSERT INTO my_table(name, age, gender, address) VALUES(name, age, gender, address);
SET id = LAST_INSERT_ID();
END
  1. Java代码中调用存储过程
// 假设已经获取到了待插入数据的列表dataList
String sql = "{CALL insert_my_table(?, ?, ?, ?, ?)}";
try(Connection conn = dataSource.getConnection();
    CallableStatement cs = conn.prepareCall(sql)) {
    for(Data data : dataList) {
        cs.setString(1, data.getName());
        cs.setInt(2, data.getAge());
        cs.setString(3, data.getGender());
        cs.setString(4, data.getAddress());
        cs.registerOutParameter(5, Types.INTEGER);
        cs.addBatch();
    }
    int[] results = cs.executeBatch();
    for(int i = 0; i < results.length; i++) {
        int id = cs.getInt(5);
        // 处理回显的 id
    }
} catch(SQLException e) {
    // 处理异常
}
Java 批量插入数据并获取自增ID:存储过程实现

原文地址: https://www.cveoy.top/t/topic/oEQP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录