批量插入方式一:
- 获取连接、返回PreparedStatement实例
- 写sql插入语句
String sql = “insert into goods(name)values(?)”; - 使用for循环插入指定数量的数据
for (int i = 0; i < 20000; i++) {
ps.setObject(1, “name” + i);
ps.execute();
} - 关闭资源
代码示例:
批量插入方式二:
使用addBatch()/executeBatch()/clearBatch()方法
addBatch(String):添加需要批量处理的sql语句
executeBatch():执行批量处理语句
clearBatch():清空缓存的数据
获取连接、返回PreparedStatement实例
写sql插入语句
使用for循环插入指定数量的数据,并添加需要批量处理的sql语句
for (int i = 0; i < 10000; i++) {
ps.setObject(1, “name” + i);
//1.暂 sql
ps.addBatch();
if (i % 500 == 0) {
//2.执行
ps.executeBatch();//3.清空batch ps.clearBatch();
}
}关闭资源
代码示例:
批量插入方式三:设置连接不允许自动提交数据
- 获取连接、设置不允许自动提交数据,写sql插入语句、返回返回PreparedStatement实例
conn = JdbcUtils.getConnection();
//设置不运行自动提交数据
conn.setAutoCommit(false);
String sql = “insert into goods(name) values (?)”;
ps = conn.prepareStatement(sql); - 使用for循环及addBatch()…执行数据
- 关闭资源
代码示例:
【注】:随着方式的迭代,会提供批量处理JDBC语句的处理速度