日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mybatis处理集合、循环、数组和in等语句的使用

發布時間:2023/11/29 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mybatis处理集合、循环、数组和in等语句的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

在Mybatis的xml配置中使用集合,主要是用到了foreach動態語句。

foreach的參數:
foreach元素的屬性主要有 item,index,collection,open,separator,close。
item表示集合中每一個元素進行迭代時的別名.
index指 定一個名字,用于表示在迭代過程中,每次迭代到的位置.
open表示該語句以什么開始,separator表示在每次進行迭代之間以什么符號作為分隔 符.
close表示以什么結束。


1. Mybatis生成select * from table where id in(1,2,...,n)語句的查詢

我們一般的做法是在方法的參數處指定傳入的參數名稱,在xml中使用的時候,集合的名稱要和方法的Param的名稱一致,這樣便于閱讀和理解,然后是在對應的xml文件中使用foreach循環。

java代碼如下:

public?abstract?List<Model>?findByIds(@Param("ids")List<Integer>?ids);

對應的xml代碼如下:

select?*?from?table <where>id?in?<foreach?collection="ids"?item="item"?index="index"?open="("?separator=","?close=")">#{item}</foreach> </where>

2.Mybatis保存多條記錄

我們同樣是通過foreach的方法來實現,這里我們巧妙的利用了sql的語法規則用Mybatis的foreach動態語句來處理。

java代碼:

public?abstract?void?saves(@Param("tables")List<Model>?tables);

xml代碼:

insert?into?table(name,addtime)?values <foreach?collection="tables"?item="item"?index="index"?separator=",">??(#{item.name},#{item.addtime}) </foreach>

以上方法Mybatis會幫我們進行sql注入攔截,Mybatis如果采用#{xxx}的形式設置參數,Mybatis會進行sql注入的過濾。如果采用的是${xxx},Mybatis不會進行sql注入過濾,而是直接將參入的內容輸出為sql語句。


轉載于:https://my.oschina.net/fallow5/blog/632317

總結

以上是生活随笔為你收集整理的mybatis处理集合、循环、数组和in等语句的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。