mybatis的if else标签使用
时间: 2023-07-21 16:38:48 浏览: 183
MyBatis-3-User-Guide
4星 · 用户满意度95%
MyBatis的if-else标签可以用于动态生成SQL语句,根据不同条件生成不同的SQL语句,从而实现灵活的数据查询。以下是if-else标签的使用方法:
1. 在SQL语句中使用if-else标签,语法如下:
```
<select id="selectUser" resultType="User">
SELECT * FROM user
<where>
<if test="id != null">
AND id = #{id}
</if>
<if test="username != null">
AND username = #{username}
</if>
</where>
</select>
```
2. 在if标签中使用test属性指定条件表达式,如果条件表达式为true,则生成if标签中的SQL语句;否则不生成if标签中的SQL语句。
3. 可以使用多个if标签组合使用,实现多条件查询。
4. 可以使用else标签,实现条件分支,如下所示:
```
<select id="selectUser" resultType="User">
SELECT * FROM user
<where>
<if test="id != null">
AND id = #{id}
</if>
<if test="username != null">
AND username = #{username}
</if>
<if test="age != null and age > 0">
AND age = #{age}
</if>
<otherwise>
AND status = 1
</otherwise>
</where>
</select>
```
5. 可以使用choose-when-otherwise标签组合使用,实现多条件分支,如下所示:
```
<select id="selectUser" resultType="User">
SELECT * FROM user
<where>
<choose>
<when test="id != null">
AND id = #{id}
</when>
<when test="username != null">
AND username = #{username}
</when>
<when test="age != null and age > 0">
AND age = #{age}
</when>
<otherwise>
AND status = 1
</otherwise>
</choose>
</where>
</select>
```
6. 可以在if-else标签中嵌套使用if-else标签,实现更加灵活的动态SQL生成。
阅读全文