1. 程式人生 > >Mybatis動態SQL之foreach標籤遍歷結果集

Mybatis動態SQL之foreach標籤遍歷結果集

當我們傳入一個集合作為引數時,我們可以採用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註解手動指定。