mybatis 批量刪除

2021-06-18 11:00:06 字數 1242 閱讀 7669

mybatis 批量刪除

目前專案組持久層用的是 mybatis 3(v 3.0.4),很多頁面涉及到批量刪除,查閱了一下mybatis 官方文件,文當中提到需要在mybatis 的實體配置檔案中配置乙個元素,  就是該元素。下面給出文件中關於該元素的介紹:

另外乙個動態sql通用的必要操作是迭代乙個集合,通常是構建在in條件中的。比如:

select  *  from post p  where id in

open="(" separator="," close=")">

#foreach元素是非常強大的,它允許你指定乙個集合,宣告集合項和索引變數,它們可以用在元素體內。它也允許你指定開放和關閉的字串,在迭代之間放置分隔符。這個元素是很智慧型的,它不會偶然地附加多餘的分隔符。

注意:你可以傳遞乙個list例項或者陣列作為引數物件傳給mybatis。當你這麼做的時候,mybatis會自動將它包裝在乙個map中,用名稱在作為鍵。list例項將會以「list」作為鍵,而陣列例項將會以「array」作為鍵。

以下為是我寫的sql,僅供參考:

delete from ld_user where id in 

#元素的及其屬性此處就不羅嗦了。下面說說元素,該元素的 item="item" index="index" collection="list" ,上述的這三個屬性我都沒做任何修改,直接放在此處使用,包括  open="("  、 separator=","  、  close=")" 這個三個元素也是未做任何修改,需求剛好跟此吻合。每個屬性的名字起的非常好,基本上一看就明白什麼意思。唯一需要強調的是元素中的  #,該處應該必須是跟元素中的這個  item="item" 屬性一致,這個屬性的name 應該是可以自定義的,還沒看mybatis 的原始碼,此處就不多說了。有興趣的話可以自己做個demo 看看。下面的是呼叫方法的**片段

listidlist = new arraylist();

idlist.add(1);

idlist.add(2);

idlist.add(3);

userdao.delete("batchremoveuserbypks",idlist);

至此,乙個批量刪除就搞定了。關於文件中提到的可以直接傳過來乙個陣列,我木有用到過,有興趣的可以自己些個小demo 實驗一下。雖然第一次用mybatis,不過感覺用著還是比較舒服的,非常靈活的配置,除了寫sql 麻煩點外(其實完全可以選擇用一些工具生成相關sql檔案,當然多多少少還是需要修改的),但這也是mybatis 的特色,畢竟靈活就意味著自己得更多的手動!

Mybatis批量刪除多表

mybatis要批量刪除多表的資料,怎麼辦 今天又同事問到了 delete from where gov frame id 說明 tablelist是引數,govframeid也是引數 記得使用 關鍵字,不要使用 關鍵字 刪除歷史已經儲存,但是有可能發生了異常的資料 mapparams maps.n...

mybatis的批量刪除

公司工程用的是mybatis的example的類,自動生成了對資料庫的操作,批量操作的今天用到了,兩種方式,一種需要拓展它生成的類,另一種自帶的。批量刪除的id是以集合list傳遞 id以list的形式傳遞 criteria criteria example.createcriteria crite...

mybatis之批量插入和批量刪除

在程式中封裝了乙個list集合物件,然後需要把該集合中的實體插入到資料庫中,專案使用了spring mvc mybatis的配置,使用mybatis批量插入。主要是用foreach標籤,它可以在sql語句中進行迭代乙個集合。foreach元素的屬性主要有 item,index,collection,...