ibatis批量處理插入例項

2021-06-20 14:27:09 字數 791 閱讀 6949

getsqlmapclienttemplate().execute(new sqlmapclientcallback() }

sqlmapclienttemplate為org.springframework.orm.ibatis.sqlmapclienttemplate

sqlmapexecutor 為ibatis包中的com.ibatis.sqlmap.client inte***ce sqlmapexecutor在系統中,提取資料迴圈計算後,每次需要有大概3000條左右的資料需要提交到資料庫。以前在迴圈中單條插入,開始只有200條左右的資料,看不出效能上的問題,現在資料量增長了很多,所以需要對提交功能做一下優化。spring整合了ibatis的批量提交的功能,我們只要呼叫api就可以了

首先在你的dao中需要繼承org.springframework.orm.ibatis.support.sqlmapclientdaosupport

然後在**中呼叫getsqlmapclienttemplate方法, 覆寫sqlmapclientcallback類中的doinsqlmapclient的方法

public void inserttreecatebatch(final listtreecatelist) throws dataacces***ception

} executor.executebatch(); //將最後的資料執行,最後不夠500條的資料

return null;

} });

} 批量插入減少了獲取資料庫連線池的次數,經過測試可以提高60%到70%的效能!

ibatis批量插入資料庫

在大批量插入資料庫的時候,如果用for迴圈一條條插入效率肯定會異常底下,本文介紹ibatis批量插入是如何做的,我這裡使用多執行緒進行分批插入,一批插入一萬條,實際插入交給子執行緒處理,這樣可以節省前端等待時間。在dao層定義個執行緒池,執行緒池定義方式以及引數如下 private static t...

golang mysql批量插入例項

業務邏輯 tcp接收訊息後,先將訊息儲存到資料庫再進行後續操作。問題 壓測發現,tcp連線非常多,訊息更多,每秒10000條訊息時,程式會記憶體溢位。解決 自然就想到了,問題出在不能及時把訊息處理掉的問題。所以先想能不能加快mysql的處理流程,可以定時批量插入代替及時插入。思路 1.接收tcp訊息...

jdbcTemplate批量插入處理資料

最近有個需求,就是批量處理資料,但是併發量應該很大,當時第一時間想到得是mybatis的foreach去處理,但是後來通過查資料發現,相對有spring 的jdbctemplate處理速度,mybatis還是有些慢,後來就自己重寫了一下jdbctemplate的批量處理 public void ba...