Mybatis中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,即对应的实体类。

猜你喜欢

转载自blog.csdn.net/weixin_42908843/article/details/87914189
今日推荐