JDBC 批量更新数据到数据库

在实际的工程中我们经常为了测试,需要批量更新或者插入以及删除数据到数据库,但是我们平常执行sql 每次都要执行很多次,带来很低的效率,但是事实上JDBC API给我们提供了2种批量更新的命令,

1, 同一sql 语句 ,插入多组参数.

String sql="insert into user values(?,?,?,?)"; PreparedStatement pstmt=conn.prepareStatement(sql); //添加第一条记录 pstmt.setString(1,ww"); pstmt.setString(2,"ww"); pstmt.setString(3,"ww"); pstmt.setString(4,"www"); //执行插入数据操作 pstmt.addBatch(); //pstmt.executeUpdate(); //添加第二条记录 pstmt.setString(1,ww"); pstmt.setString(2,"ww"); pstmt.setString(3,"ww"); pstmt.setString(4,"www"); pstmt.addBatch(); //pstmt.executeUpdate(); //添加第三条记录 pstmt.setString(1,".."); pstmt.setString(2,"ww"); pstmt.setString(3,"wwww"); pstmt.setString(4,"wwwww"); pstmt.addBatch(); int [] counts=pstmt.executeBatch(); //针对一条sql批量添加不同的参数 //关闭pstmt pstmt.close(); conn.close();

2,批量执行多条sql语句.

Statement smt = conn.createStatement(); String sql1= "update table1 set col1 = newdata1"; String sql2= "update table2 set col2 = newdata2"; String sql3= "update table3 set col3 = newdata3"; smt.addBatch(sql1); smt.addBatch(sql2); smt.addBatch(sql3); smt.executeBatch(); if(smt!=null) smt.close(); if(conn!=null) conn.close()

总结: 这是API提供给我们的简单的批处理操作,我经常用在JUnit测试的时候,

在每个case 前面加上一个注解, 注解里写上自己的sql语句,这样的话我们就不需要每次都要数据库里去更新数据然后再去测试,然后还要去数据库里去删除废数据,

当然你或许还要准备一个注解来注入sql语句和 处理这些数据到数据库了, 由于这些不在这个话题内 所以不在多说

经验分享 程序员 微信小程序 职场和发展