mybatis 语句if else
时间: 2023-12-13 17:06:16 浏览: 85
在MyBatis中,我们可以使用`<if>`和`<choose>`标签来实现if-else语句的功能。
1. `<if>`标签
`<if>`标签可以用于在SQL语句中添加条件判断。例如,我们可以使用`<if>`标签来判断一个参数是否为空,如果为空则不添加该条件,否则添加该条件。
示例代码如下:
```xml
<select id="getUserList" resultType="User">
SELECT * FROM user
WHERE 1=1
<if test="username != null">
AND username = #{username}
</if>
<if test="email != null">
AND email = #{email}
</if>
</select>
```
在上面的示例中,我们使用了`<if>`标签来判断`username`和`email`是否为空,如果不为空,则添加相应的条件到SQL语句中。
2. `<choose>`标签
`<choose>`标签可以用于实现if-else语句的功能。它包含多个`<when>`标签和一个`<otherwise>`标签。每个`<when>`标签都有一个`test`属性,用于判断条件是否成立。如果`test`属性的值为true,则执行该`<when>`标签中的SQL语句;否则继续判断下一个`<when>`标签,如果所有的`<when>`标签都不成立,则执行`<otherwise>`标签中的SQL语句。
示例代码如下:
```xml
<select id="getUserList" resultType="User">
SELECT * FROM user
WHERE 1=1
<choose>
<when test="username != null">
AND username = #{username}
</when>
<when test="email != null">
AND email = #{email}
</when>
<otherwise>
AND status = 1
</otherwise>
</choose>
</select>
```
在上面的示例中,我们使用了`<choose>`标签来判断`username`和`email`是否为空,如果不为空,则添加相应的条件到SQL语句中;否则添加`status = 1`条件到SQL语句中。
阅读全文