MyBatis 3 動態(tài)SQL-foreach

2022-04-11 10:44 更新

foreach

動態(tài) SQL 的另一個常見使用場景是對集合進行遍歷(尤其是在構建 IN 條件語句的時候)。比如:

<select id="selectPostIn" resultType="domain.blog.Post">
  SELECT *
  FROM POST P
  <where>
    <foreach item="item" index="index" collection="list"
        open="ID in (" separator="," close=")" nullable="true">
          #{item}
    </foreach>
  </where>
</select>

?foreach ?元素的功能非常強大,它允許你指定一個集合,聲明可以在元素體內使用的集合項(?item?)和索引(?index?)變量。它也允許你指定開頭與結尾的字符串以及集合項迭代之間的分隔符。這個元素也不會錯誤地添加多余的分隔符,看它多智能!

你可以將任何可迭代對象(如 ?List?、?Set ?等)、?Map ?對象或者數組對象作為集合參數傳遞給 ?foreach?。當使用可迭代對象或者數組時,?index ?是當前迭代的序號,?item ?的值是本次迭代獲取到的元素。當使用 ?Map ?對象(或者 Map.Entry 對象的集合)時,?index ?是鍵,?item ?是值。

至此,我們已經完成了與 ?XML ?配置及映射文件相關的討論。


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號