目前專案組持久層用的是 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(3) 引數處理
單個引數 mybatis不會做特殊處理,取出引數值。多個引數 mybatis會做特殊處理。多個引數會被封裝成 乙個map,key param1.paramn,或者引數的索引也可以 value 傳入的引數值 就是從map中獲取指定的key的值 命名引數 明確指定封裝引數時map的key param i...
關於Mybatis3的更新操作
第一種 update users user name user addr where user id 第二種 update users set user name user addr where user id 個人認為有時候還是有需要將字段值設定為null的,比如清空日期字段。因此,針對只更新某一...
mybatis 批量刪除
mybatis 批量刪除 目前專案組持久層用的是 mybatis 3 v 3.0.4 很多頁面涉及到批量刪除,查閱了一下mybatis 官方文件,文當中提到需要在mybatis 的實體配置檔案中配置乙個元素,就是該元素。下面給出文件中關於該元素的介紹 另外乙個動態sql通用的必要操作是迭代乙個集合,...