mybatis的if else标签
时间: 2023-10-21 11:21:03 浏览: 201
MyBatis框架中的`<if>`和`<choose>`标签可以用于在SQL语句中添加条件判断和分支逻辑。下面是关于这两个标签的使用说明:
1. `<if>`标签:用于在SQL语句中添加单个条件判断。
示例代码:
```xml
<select id="getUserById" parameterType="int" resultType="User">
SELECT * FROM users
WHERE id = #{userId}
<if test="userName != null">
AND name = #{userName}
</if>
</select>
```
在上述示例中,`<if>`标签用于判断`userName`参数是否为`null`,如果不为`null`,则会拼接额外的`AND name = #{userName}`条件到SQL语句中。
2. `<choose>`, `<when>`, `<otherwise>`标签:用于在SQL语句中添加多个条件判断和分支逻辑。
示例代码:
```xml
<select id="getUserByNameOrEmail" resultType="User">
SELECT * FROM users
<where>
<choose>
<when test="name != null">
name = #{name}
</when>
<when test="email != null">
email = #{email}
</when>
<otherwise>
1 = 1
</otherwise>
</choose>
</where>
</select>
```
在上述示例中,`<choose>`标签包含多个`<when>`子标签和一个`<otherwise>`子标签。根据条件的不同,将会拼接不同的SQL语句。如果`name`参数不为`null`,则会拼接`name = #{name}`条件;如果`email`参数不为`null`,则会拼接`email = #{email}`条件;如果两个参数都为`null`,则会拼接`1 = 1`,相当于没有额外条件。
希望以上信息对你有帮助。如果还有其他问题,请随时提问。
阅读全文