Mybatis動態SQL之foreach標籤遍歷結果集
阿新 • • 發佈:2019-01-05
當我們傳入一個集合作為引數時,我們可以採用foreach
標籤將結果集遍歷出來再設定進SQL語句中。
xml對映檔案foreach部分內容:
<!--foreach遍歷標籤
標籤屬性解析:
1.collection 傳入的集合名
2.item foreach標籤每遍歷一次collection後,每次的結果存入item指定的變數中
3.open foreach標籤生成的sql語句開始部分
4.close foreach標籤生成的sql語句結束部分
5.separator 每次遍歷出來的結果以separator屬性中指定的值分割
6.index foreach標籤每次遍歷時該值在集合的位置。如果是List則值為下標索引,如果是Map則值為Map的Key值。
-->
<select id="selectByForEachTag" resultType="com.heiketu.testpackage.pojo.Product">
SELECT
p.prod_id prodId,
p.vend_id vendId,
p.prod_name prodName
FROM Products p
<foreach collection="ibs" item="coll" open="where prod_id in(" close=")" separator=",">
#{coll}
</foreach >
</select>
重點注意: 因為mybatis會對集合引數進行特殊處理,索引在collection屬性值填的集合名需要使用@Param註解手動指定。