@Test
//批量插入数据库
public void Demo1() throws Exception{
String sql1 = "insert into user values('1','a1') ";
String sql2 = "insert into user values('2','a2') ";
String sql3 = "insert into user values('3','a3') ";
String sql4 = "insert into user values('4','a4') ";
Connection conn = JDBCUtils.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql1);
pstmt.addBatch();
pstmt.addBatch(sql2);
pstmt.addBatch(sql3);
pstmt.addBatch(sql4);
pstmt.executeBatch();
}
@Test
//批量插入数据库,循环方式
public void Demo2() throws Exception{
Connection conn = JDBCUtils.getConnection();
PreparedStatement ps = null;
int len = 8;
for(int i=0; i<len; i++) {
String sql = "insert into user value("+i+",'aa')";
ps = conn.prepareStatement(sql);
//优化插入 等一定量后再一起插入。
ps.addBatch();
}
ps.executeBatch();
//优化插入提交,批量插入数据库中。
ps.clearBatch(); //提交后,Batch清空。
}
@Test
//批量添加,并设置参数
public void Demo6() throws Exception{
Connection conn = JDBCUtils.getConnection();
String sql = "insert into user values(?,?)";
PreparedStatement ps = conn.prepareStatement(sql);
int len = 10;
for(int i=0; i<1000; i++) {
ps.setInt(1, i);
ps.setString(2, "a"+i);
//优化插入 插入代码打包,等一定量后再一起插入。
ps.addBatch();
//每len = 10次提交一次
if((i!=0 && i%len==0) || i==len-1){//可以设置不同的大小;如50,100,200,500,1000等等
ps.executeBatch();
//优化插入第三步 提交,批量插入数据库中。
ps.clearBatch(); //提交后,Batch清空。
}
}
}
批量插入.png (101.69 KB, 下载次数: 10)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |