java_jdbc_batch处理_主键id获取

时间:2023-03-09 16:37:54
java_jdbc_batch处理_主键id获取

//create1 速度较慢,create2较快,但是要根据数据库不同来决定

//ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); ps可以获取 id

package cn.itcast.batch;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; import cn.itcast.JdbcUtils;
import cn.itcast.user.DaoExcetpion;
import cn.itcast.user.User; public class BatchTest { public static void main(String[] args) {
// TODO Auto-generated method stub } public static void create(int i) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null; try {
conn = JdbcUtils.getConnection();
String sql = "insert into t_user(username,password) values (?,?) ";
ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
ps.setString(1, "batch name" + i);
ps.setString(2, "password1"); ps.executeUpdate(); // 可以利用注析代码为bean赋值,id赋值,不用return
// rs=ps.getGeneratedKeys();
// int id=0;
// if(rs.next()){
// id = rs.getInt(1);
// }
// return id;
} catch (SQLException e) {
throw new DaoExcetpion(e.getMessage(), e);
} finally {
JdbcUtils.free(rs, ps, conn);
}
} public static void create2(int i) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null; try {
conn = JdbcUtils.getConnection();
String sql = "insert into t_user(username,password) values (?,?) ";
ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
for (int y = 0; y < 100; y++) {
ps.setString(1, "batch name " + i);
ps.setString(2, "batch password " + i);
ps.addBatch();
}
int[] iS = ps.executeBatch();
// ps.executeUpdate(); } catch (SQLException e) {
throw new DaoExcetpion(e.getMessage(), e);
} finally {
JdbcUtils.free(rs, ps, conn);
}
}
}