當需要向數據庫發送一批sql指令時,應該避免一條一條的向數據庫發送命令,而應該采用jdbc的批處理機制,以提升效率。
jdbc提供兩種批處理機制:
第一種:
statement.addbatch(sql);,這個方法返回一個list集合,執行批處理指令------executeBatch(),之后調用clearBatch(),清理批。
Connection conn = null;Statement st = null;ResultSet rs = null;try {conn = JdbcUtil.getConnection();String sql1 = "insert into user(name,passWord,email,birthday) values('kkk','123','abc@sina.com','1978-08-08')";String sql2 = "update user set password='123456' where id=3";st = conn.createStatement();st.addBatch(sql1); //把SQL語句加入到批命令中st.addBatch(sql2); //把SQL語句加入到批命令中st.executeBatch();} finally{ JdbcUtil.free(conn, st, rs);}采用這種方法的缺點是:沒有預編譯sql語句,還有就是,當要向數據庫發送多條命令相同而參數不同的sql指令是,需要重復寫很多次sql指令,過于繁瑣。第二種:
PReparedStatement.addBatch(),優點:發送的是預編譯后的SQL語句,執行效率高。缺點:只能應用在SQL語句相同,但參數不同的批處理中。因此此種形式的批處理經常用于在同一個表中批量插入數據,或批量更新表的數據。
新聞熱點
疑難解答