使用JDBC进行批处理

男娘i 2022-05-15 03:50 277阅读 0赞

适用场景:

当需要向数据库发送一批SQL语句执行时,应避免向数据库一条条的发送执行,而应该采用JDBC的批处理机制,以提升执行效率。

实现方式:

方式一:Statement.addBatch(SQL),可以发送不同的SQL语句

执行SQL语句的方法:executeBatch()

清除批处理命令的方法:clearBatch()

  1. Connection conn = null;
  2. Statement st = null;
  3. ResultSet rs = null;
  4. try{
  5. conn = JdbcUtils.getConnection();
  6. String sql1 = "insert into testbatch(id,name) values('1','aaa')";
  7. String sql2 = "update testbatch set name='bbb' where id='1'";
  8. st = conn.createStatement(); //list
  9. st.addBatch(sql1);
  10. st.addBatch(sql2);
  11. //[3,4]
  12. st.executeBatch();
  13. st.clearBatch();
  14. }finally{
  15. JdbcUtils.release(conn, st, rs);
  16. }

方式二:PreParedStatement.addBatch(),只能发送相同的SQL语句适合做批量插入、批量更新。

执行SQL语句的方法:executeBatch()

清除批处理命令的方法:clearBatch()

  1. Connection conn = null;
  2. PreparedStatement st = null;
  3. ResultSet rs = null;
  4. try{
  5. conn = JdbcUtils.getConnection();
  6. String sql = "insert into testbatch(id,name) values(?,?)"; //作批量插入 批量更新
  7. st = conn.prepareStatement(sql);
  8. for(int i=1;i<=10000006;i++){
  9. st.setString(1, i+"");
  10. st.setString(2, "aa" + i);
  11. st.addBatch();
  12. if(i%1000==0){
  13. st.executeBatch();
  14. st.clearBatch();
  15. }
  16. }
  17. st.executeBatch();
  18. }finally{
  19. JdbcUtils.release(conn, st, rs);
  20. }

发表评论

表情:
评论列表 (有 0 条评论,277人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JDBC处理

    当存在大量的数据需要操作时,如果使用通常的做法会十分浪费时间,因为一次数据库操作的时间主要在建立连接和释放资源上(即使应用了连接池,这两个步骤依然十分耗费时间)。 因此,当有

    相关 jdbc处理

    当需要向数据库发送一批sql指令时,应该避免一条一条的向数据库发送命令,而应该采用jdbc的批处理机制,以提升效率。 jdbc提供两种批处理机制: 第一种: statem

    相关 jdbc处理

    当需要向数据库发送一批sql指令时,应该避免一条一条的向数据库发送命令,而应该采用jdbc的批处理机制,以提升效率。 jdbc提供两种批处理机制: 第一种: statem

    相关 使用JDBC进行处理

    适用场景: 当需要向数据库发送一批SQL语句执行时,应避免向数据库一条条的发送执行,而应该采用JDBC的批处理机制,以提升执行效率。 实现方式: 方式一:Stat