mybatis foreach中
时间: 2024-12-30 18:25:06 浏览: 5
### MyBatis `foreach` 标签使用方法
#### 基本概念
`<foreach>` 是 MyBatis 提供的一个用于处理集合数据的动态 SQL 标签。通过该标签,可以在 SQL 语句中循环遍历传入的集合对象并构建相应的查询条件[^1]。
#### 属性解释
- **collection**: 表示要迭代的对象名称,在传递给映射文件之前需指定好对应的参数名。
- **item**: 定义每次迭代产生的变量名,即当前项的内容会赋值给此变量。
- **open** 和 **close**: 分别表示整个 `<foreach>` 结构前后的字符串包裹符。
- **separator**: 指定各个元素之间的分隔符,默认为空格字符。
#### 实际应用案例展示
##### 查询多条记录
下面是一个基于多个 ID 进行筛选的例子:
```xml
<select id="findBlogByIds" parameterType="map" resultType="com.example.Blog">
SELECT *
FROM blog
WHERE id IN (
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
)
</select>
```
这段代码实现了根据一组博客ID查找对应的文章列表的功能[^2]。
##### 批量删除操作
对于批量删除的需求,则可以通过如下方式实现:
```xml
<delete id="batchDeleteAccounts" parameterType="java.util.List">
DELETE FROM account
WHERE id IN (
<foreach collection="list" item="id" index="index" separator=",">
#{id}
</foreach>
);
</delete>
```
这里展示了怎样利用 `<foreach>` 来完成一次性的多条目移除动作[^4]。
阅读全文