mybaits批量新增修改

2021-08-07 12:07:33 字數 1356 閱讀 6180

開發中,批量修改資料應該是很常見的功能需求。今晚開發時配置批量修改功能遇到很多坑,浪費了很多時間,特此記錄下來,跟大家分享,今天你看到的坑我都為您鋪平了。

批量執行sql語句,無非就是批量修改和批量新增。我用現在使用量最多的框架mybatis寫乙個修改功能給大家做個demo看。其他的自己舉一反三,我不在這浪費筆墨了,一樣的邏輯。

使用事務控制,在service層控制進行迴圈修改。mybatis動態sql語句進行批量修改。透過現象看本質就是要實現以下效果

批量的sql語句一次執行

第一種:使用事務控制,在service層控制進行迴圈修改。容易想到,容易操作,但是要傳送多次sql請求,浪費時間和效能。

這個是乙個樹拖拽排序的後台**:

sql就是最簡單的update語句

service用事務控制,迴圈執行插入就行

這個很簡單,很好理解,不多說。注意事務控制就行。

第二種:mybatis動態sql語句進行批量修改。一次性把要執行的sql語句發給資料庫,大量提示性能,推薦使用。這個是拖拽**進行排序功能的。

這個是乙個拖拽**時,批量修改使用者表的動態sql語句。配置檔案中,item指明當前遍歷的物件,collection指明傳入的集合型別,open指明迭代以什麼符號開始,separator指明迭代間用什麼符號分割,close指明迭代用什麼符號結束,還有index可以指明迭代的索引。

我用的資料庫是mysql,注意看上邊的配置,oracle資料庫的配置略微不同。不同如下:

oracle資料庫的配置

mysql資料庫的配置

mybaits 一對多關係 批量新增

問題需求 乙個裝置入庫單下有多個裝置,即orderid對應deviceidlist,一對多的關係需要存入資料庫中 解決思路 1。deviceidlist 遍歷,一次向資料庫插入一行語句。優點 編寫簡單 缺點 多次連線資料庫。2。封裝好物件,傳入物件,資料庫批量新增。優點 只需一次連線資料庫 缺點 編...

mybatis批量修改,批量新增

mybatis批量修改 批量新增sql語句 1 單個新增 insert into t user user name,mobile values 2 新增並返回主鍵 keyproperty的屬性是要返回的主鍵欄位的名稱 insert into t user user name,mobile value...

mybatis 批量新增修改

1 dao層 int addstoragebatch liststoragelist int updatestoragebatch param storagelist liststoragelist 2 xml檔案 usegeneratedkeys true keyproperty id inser...