批量處理數(shù)據(jù):(代碼優(yōu)化:提高程序執(zhí)行性能)
降低了java程序代碼(客戶端)和數(shù)據(jù)庫之間的 網(wǎng)絡(luò)通信的次數(shù)脓匿。
在jdbc中進(jìn)行批量插入的核心API為 addBatch,executeBatch
大數(shù)據(jù)量的插入問題:(jdbc,hibernate,ibatis)
1.每次只插入一條和數(shù)據(jù)庫交互多次(很耗時間)
2.批量插入和數(shù)據(jù)庫只交互一次(內(nèi)存溢出)
3.分段批量插入(推薦)
????jdbc批量處理數(shù)據(jù)是通過PreparedStatement對象的 addbatch()汹想,executebatch() clearbatch()進(jìn)行和數(shù)據(jù)庫的交互舟铜。通常我們使用分段批量處理的方式 這樣可以提高程序的性能 践啄,防止內(nèi)存溢出臣淤。
1.每個sql語句都和數(shù)據(jù)庫交互一次(非批量操作)
2.只和數(shù)據(jù)庫交互一次(批量操作)(內(nèi)存溢出)
當(dāng)數(shù)據(jù)達(dá)到一定額度的時候就和數(shù)據(jù)庫進(jìn)行交互筝野,分多次進(jìn)行(分段批量操作)
(500或者1000)
pst.addBatch();
if (i > 0 && i%1000 == 0) {
pst.executeBatch();
pst.clearBatch();
}