需求:有一个book表,需要批量插入20条数据
PreparedStatement stam=null; //定义在try..catch外面,可以让外界访问
try {
stam= connection.prepareStatement("insert into book values (? ,?)");
for(int i=4;i<14;i++){ //因为我的数据库前面有3个所以从4开始这个无所谓了
/*books b = new books();
b.setBid(i);
b.setBname("C#"+i);*/
//之前像定义一个book对象赋值,但是没多大用(stam.setInt(book.getBname()))取得时候麻烦所以直接将i的值赋予stam了
stam.setInt(1 ,i);
stam.setString(2,"C#"+i);
stam.addBatch(); //将数据添加到批处理中
if((i+1)%6 ==0){ //没添加6个开始执行批处理
stam.executeBatch();//执行批处理
stam.clearBatch(); //清空stam`1里面的数据 目的让后面的数据继续放进来
}
//如果想添加一个到批处理中就执行就不用if判断了直接执行批处理(stam.executeBatch())就行了
}
stam.executeBatch(); //以防万一有些数据没插入数据库在执行一次批处理 (比如13个数据上面只插入了12个 对不对 仔细想想)
stam.clearBatch();
System.out.println("成批插入成功");
} catch (SQLException e) {
e.printStackTrace();
}
1310

被折叠的 条评论
为什么被折叠?



