目錄
當需要向資料庫中傳送一批sql語句執行時,應避免向資料庫一條條的傳送執行,而應採用jdbc的批處理機制,以提公升執行效率;
使用jdbc進行批處理,實現批處理有兩種機制;
statement.addbatch(sql1) ;
statement.addbatch(sql2) ;
...// 內部是 statement物件維護著乙個list物件,儲存著批處理的sql語句 ;
executebatch(); // 執行批處理sql語句:
clearbatch(); // 清楚批處理命令:即清除 list 中的sql語句 ;
優點
:可以向資料庫傳送多條不同的sql語句 ;
缺點
:sql語句沒有預編譯
;當多條sql語句僅僅是引數不同的時候,也必須呆呆的寫多條;
// 先將預編譯好的 sql 儲存到 preparestatement物件中,這時候還沒有存進 list 裡面 ;
preparestatement(sql);
// 每次呼叫preparestatement物件的set***x()方法,都覆蓋掉之前的sql語句 ;
// 但是我們呼叫set***x方法之前,就會將之前的sql語句新增進內部的list裡面,因此覆蓋也沒有事
preparedstatement.set***x(....) ;
// 將預編譯的sql語句,加到preparedstatment物件內部的list中;
preparedstatement.addbatch();
// 將預編譯的sql語句,加到preparedstatment物件內部的list中;
preparedstatement.addbatch();
executebatch(); // 執行批處理sql語句:
clearbatch(); // 清楚批處理命令:
優點
:傳送是預編譯的sql語句,執行效率高;
缺點
:只能應用在sql語句相同,但是引數不同的批處理裡面;適用於在同一張表中進行批量資料的操作;
用批處理運算元據庫,update()
方法返回的是乙個陣列,裡面記錄著每一條sql語句影響的行數 ;
在進行批處理的時候,乙個批不要太大,否則會記憶體溢位,可以迴圈批處理;
mysql插入一千萬條資料大概要花3小時,而oracle只需要花6分鐘; 果然收費還是有收費的道理的 ;
使用JDBC進行批處理
業務場景 當需要向資料庫傳送一批sql語句執行時,應避免向資料庫一條條的傳送執行,而應採用jdbc的批處理機制,以提公升執行效率。實現批處理有兩種方式 第一種方式 使用 statement.addbatch sql connection conn jdbcutil.getconnection str...
使用JDBC進行批處理
當我們需要向資料庫傳送一批sql語句執行時,應避免向資料庫一條條的傳送執行,而應採用jdbc的批處理機制,以提公升執行效率 有兩種方式實現批處理 1.使用statement statement.addbatch sql 方法 新增sql語句 executebatch 方法 執行批處理命令 clear...
使用JDBC進行批處理
當需要向資料庫傳送一批sql語句執行時,應避免向資料庫一條條的傳送執行,而應該採用jdbc的批處理機制,以提公升執行效率。方式一 statement.addbatch sql 可以傳送不同的sql語句 執行sql語句的方法 executebatch 清除批處理命令的方法 clearbatch con...