當我們需要向資料庫傳送一批sql語句執行時,應避免向資料庫一條條的傳送執行,而應採用jdbc的批處理機制,以提公升執行效率
有兩種方式實現批處理:
1.使用statement
statement.addbatch(sql)方法:新增sql語句
executebatch
()方法:執行批處理命令
clearbatch
()方法:清除批處理命令
優點:可以向資料庫傳送多條不同的sql語句。
缺點:
sql語句沒有預編譯。
當向資料庫傳送多條語句相同,但僅引數不同的sql語句時,需重複寫上很多條sql語句,如:
insert into student(id,name) values(1,』aa』);
insert into student(id,name) values(2,』bb』);
insert into student(id,name) values(3,』cc』);
2.使用preparedstatement
preparedstatement.addbatch()
例:
conn = jdbcutil.getconnection();
string sql = "insert into student(id,name) values(?,?)"
;st = conn.preparestatement(sql);
for(int i=0
;i<100;i++)}st
.executebatch();
優點:傳送的是預編譯後的sql語句,執行效率高。
缺點:只能應用在sql語句相同,但引數不同的批處理中。因此此種形式的批處理經常用於在同乙個表中批量插入資料,或批量更新表的資料。
另外,preparestatement在應用時相比於statement也有很多優點:
preperedstatement可以避免sql注入的問題。
statement會使資料庫頻繁編譯sql,可能造成資料庫緩衝區溢位。
preparedstatement可對sql進行預編譯,從而提高資料庫的執行效率。
並且preperedstatement對於sql中的引數,允許使用佔位符的形式進行替換,簡化sql語句的編寫。
使用JDBC進行批處理
業務場景 當需要向資料庫傳送一批sql語句執行時,應避免向資料庫一條條的傳送執行,而應採用jdbc的批處理機制,以提公升執行效率。實現批處理有兩種方式 第一種方式 使用 statement.addbatch sql connection conn jdbcutil.getconnection str...
使用JDBC進行批處理
當需要向資料庫傳送一批sql語句執行時,應避免向資料庫一條條的傳送執行,而應該採用jdbc的批處理機制,以提公升執行效率。方式一 statement.addbatch sql 可以傳送不同的sql語句 執行sql語句的方法 executebatch 清除批處理命令的方法 clearbatch con...
使用JDBC進行批處理
l業務場景 當需要向資料庫傳送一批sql語句執行時,應避免向資料庫一條條的傳送執行,而應採用jdbc的批處理機制,以提公升執行效率。l實現批處理有兩種方式,第一種方式 statement.addbatch sql l執行批處理sql語句 executebatch 方法 執行批處理命令 clearba...