mybatis xml foreach
时间: 2025-01-04 20:32:51 浏览: 5
### MyBatis XML `foreach` 标签使用教程
#### 用途概述
在处理集合类型的参数时,为了能够遍历数组、列表和 Map 等数据结构以执行批量操作或是构建动态SQL语句,MyBatis 提供了 `<foreach>` 标签[^2]。
#### 属性详解
- **collection**: 需要指定输入对象中的属性名,该属性应指向一个可迭代的对象(如 List 或 Array)、Map 的 value 值或者是单个基本类型/字符串。当传递给Mapper接口方法的是单一参数且其本身即为List或Array时,则此值默认设为 list;如果参数是一个封装类实例的话,则需指明具体字段名称。
- **item**: 定义每次循环取出的当前项变量名,在表达式中可通过 ${} 访问该项的具体内容。
- **open**, **close**: 分别表示整个集合前后的包裹字符,默认为空白串。对于IN子查询来说通常设置成括号 "()" 形式。
- **separator**: 各成员间分隔符,默认逗号",".
#### 实际应用案例
下面给出一段基于上述描述的实际应用场景——通过ID列表查找记录:
```xml
<select id="selectPosts" parameterType="list" resultType="org.mybatis.example.Post">
SELECT *
FROM POSTS
WHERE ID IN
<foreach item="id" index="index" collection="list"
open="(" separator="," close=")">
#{id}
</foreach>
</select>
```
这段代码实现了根据传入的一组ID来筛选符合条件的数据条目,并最终返回相应的实体对象列表[^5]。
阅读全文