mybatis foreach 内加 if lese
时间: 2023-12-08 09:39:16 浏览: 42
在Mybatis中,我们可以使用foreach标签来遍历一个集合,并将集合中的元素作为参数传递给SQL语句。如果需要在foreach内加if else语句,可以使用Mybatis提供的choose、when、otherwise标签来实现。
以下是一个示例,假设我们有一个List对象,其中包含了多个User对象,我们需要根据User对象的不同属性值来拼接SQL语句:
```xml
<select idgetUserList" resultType="User">
SELECT * FROM user
WHERE 1=1
<foreach collection="list" item="user" separator="OR">
<choose>
<when test="user.name != null">
AND name = #{user.name}
</when>
<when test="user.age != null">
AND age = #{user.age}
</when>
<otherwise>
AND id = #{user.id}
</otherwise>
</choose>
</foreach>
</select>
```
在上面的示例中,我们使用了choose、when、otherwise标签来实现了在foreach内加if else语句的功能。当遍历到集合中的某个元素时,会根据该元素的属性值来判断使用哪个when标签内的SQL语句,如果所有when标签都不符合条件,则使用otherwise标签内的SQL语句。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)