mybatis xml choose
时间: 2024-06-14 09:03:27 浏览: 19
MyBatis Mapper.xml中的choose标签类似于Java中的switch语句,用于在动态SQL中避免使用大量的if元素。choose元素包含了when元素(对应Java中的case语句),otherwise元素则对应Java中的default语句。当choose元素的子元素when中的test条件成立时,就会执行when元素中的SQL语句;如果所有的when元素的test条件都不成立,则会执行otherwise元素中的SQL语句。以下是一个MyBatis Mapper.xml中choose标签的例子:
```xml
<select id="findUser" parameterType="map" resultType="User">
SELECT * FROM user
<where>
<choose>
<when test="id != null">
AND id = #{id}
</when>
<when test="username != null">
AND username = #{username}
</when>
<otherwise>
AND 1=1
</otherwise>
</choose>
</where>
</select>
```
上面的例子中,当传入的参数map中包含id时,就会执行AND id = #{id}这条SQL语句;当传入的参数map中包含username时,就会执行AND username = #{username}这条SQL语句;如果传入的参数map中既不包含id也不包含username,则会执行AND 1=1这条SQL语句。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![none](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)