mybatis里面where后面如何跟上foreach
时间: 2024-09-25 16:08:36 浏览: 10
在MyBatis中,如果你想在`WHERE`子句里动态地遍历一个集合,可以使用`<foreach>`标签。这个标签通常用于构建动态SQL查询,其基本语法如下:
```xml
<select id="selectUsers" parameterType="list" resultType="User">
SELECT * FROM users
<where>
<if test="condition != null">
condition1 AND
</if>
<foreach item="item" index="index" collection="collectionName"
open="(" separator="," close=")">
#{item.column} = #{collectionName.get(index).column}
</foreach>
</where>
</select>
```
在这个例子中:
- `collectionName`是你希望遍历的集合的名称,它应该在你的Mapper XML文件的`<resultMap>`或`<parameterMap>`中声明过。
- `item`是一个临时变量,代表集合中的每个元素。
- `index`是当前元素的索引。
- `open`、`separator` 和 `close` 分别定义了开始、分割符和结束括号的内容,默认分别为圆括号、逗号和空括号。
注意,`<if>`标签先检查`condition`是否为null,避免在没有条件的情况下生成多余的"AND"。