Mybatis批量插入或更新 根據指定字段更新

2021-09-28 22:21:36 字數 714 閱讀 7074

mybatis批量更新運用on duplicate key update ,如果記錄不存在則插入,存在則更新。那麼這個記錄是否存在根據什麼判斷?規則如下:

如果你插入的記錄導致unique索引重複,則認為這條記錄存在。比如我建立表的時候設定的唯一索引為字段email,那麼如果email重複時則執行更新,否則插入。當如果唯一索引為多個欄位時如name,tchcode,那麼當name,tchcode兩個字段完全重複時候,此時就要執行更新語句。當然滿足一部分唯一索引是不會觸發更新操作的,此時會執行插入操作。

接下來dao層:

xml中的**為:

update的欄位名都是表中的欄位名,包括values()中的

foreach元素的屬性主要有 item,index,open,close ,separator,collection。

item表示集合中每乙個元素進行迭代時的別名

index指 定乙個名字,用於表示在迭代過程中,每次迭代到的位置

open表示該語句以什麼開始

close表示以什麼結束

separator表示在每次進行迭代之間以什麼符號作為分隔符

collection傳入的是引數,可以是list,array.傳入的是單引數且引數型別是乙個array陣列的時候,collection的屬性值為array

Mybatis批量插入或更新

1 更新單條記錄 update course set name course1 whereid id1 2 更新多條記錄的同乙個欄位為同乙個值 update course set name course1 where id in id1 id2 id3 3 更新多條記錄為多個欄位為不同的值 比較普通...

mybatis批量插入,批量更新

insert into t ingco trade lithium electric product product no,li e product no,transpor report number,msds,transpor report number path,msds path,un tes...

mybatis 批量插入 ,更新總結

以下是在專案中運用到 的運用mybatis 批量 更新,插入的方法 注意 1 在程式中封裝了乙個list集合物件,然後需要把該集合中的實體插入到資料庫中 所以,該配置中 傳遞的引數型別 parametertype 為list foreach的主要用在構建in條件中,它可以在sql語句中進行迭代乙個集...