Mybatis中foreach标签的使用
- foreach代码示例
- foreach标签参数解释
- 使用foreach注意事项
Mybatis中foreach标签的作用:
一般使用foreach遍历传入的列表,如list。在Mybatis中的xml文件中,和普通的sql语句组合成一条完整的语句
foreach代码示例
<select id="findFileStatusByUrlList" parameterType="" 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,即对应的实体类。