mybatis foreach 中使用 if
时间: 2024-03-01 16:48:09 浏览: 209
在MyBatis中,可以使用foreach标签结合if条件来实现动态的SQL语句拼接。foreach标签用于遍历一个集合,并将集合中的元素作为参数传递给SQL语句。
下面是使用foreach和if条件的示例:
```xml
<select id="getUserList" resultType="User">
SELECT * FROM user
WHERE 1=1
<foreach collection="userIds" item="userId" open="AND (" separator="OR" close=")">
<if test="userId != null">
user_id = #{userId}
</if>
</foreach>
</select>
```
在上面的示例中,我们使用了foreach标签来遍历userIds集合,并将集合中的每个元素作为userId参数传递给SQL语句。同时,我们使用了if条件来判断userId是否为空,如果不为空,则拼接user_id = #{userId}到SQL语句中。
这样,当userIds集合中有多个元素时,会生成类似于以下的SQL语句:
```sql
SELECT * FROM user
WHERE 1=1
AND (user_id = #{userId1} OR user_id = #{userId2} OR user_id = #{userId3})
```
这样就实现了根据不同条件动态拼接SQL语句的功能。
阅读全文