天天看點

Mybatis中foreach标簽的使用

Mybatis中foreach标簽的使用

    • foreach代碼示例
    • foreach标簽參數解釋
    • 使用foreach注意事項

Mybatis中foreach标簽的作用:

一般使用foreach周遊傳入的清單,如list。在Mybatis中的xml檔案中,和普通的sql語句組合成一條完整的語句

foreach代碼示例

<select id="findFileStatusByUrlList" parameterType="java.util.List" resultMap="BaseResultMap">
    SELECT * FROM file_approve WHERE file IN
    <foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
      #{item}
    </foreach>
  </select>
  <!--最終的效果等同于:
   SELECT * FROM file_approve WHERE file IN ("idCard","bankCard","securityCard",...)
-->
           

foreach标簽參數解釋

其中collection和item參數為必填!

  • collection:必須指定,
    • 當傳入的參數為list類型,為list
    • 當傳入的參數為array類型,為array
    • 當傳入的參數為map類型,為map的鍵key(較少使用)
  • item:疊代集合時,元素的别名
  • index:在list和數組中,index是元素的序号,在map中,index是元素的key
  • open:包裹被疊代集合元素的開始符号,一般為"("
  • close:包裹被疊代集合元素的結束符号,一般為")"
  • separator:被疊代元素之間的分隔符,一般為","

使用foreach注意事項

1.在sql标簽需内要指定parameterType,即傳入參數類型

2.同時也需要指定resultMap(查詢的時候需要),傳回值類型。使用者也可自定義自己的resultMap。一般傳回BaseResultMap,即對應的實體類。

繼續閱讀