mybatis的动态sql使用
时间: 2024-01-09 07:21:57 浏览: 80
mybatis之动态SQL
Mybatis的动态SQL是一种在SQL语句中根据条件动态拼接的技术,它可以根据不同的条件生成不同的SQL语句,从而实现灵活的数据库操作。下面是两种常见的Mybatis动态SQL使用方法:
1. 使用if标签生成动态SQL语句:
```xml
<select id="getUserList" resultType="User">
SELECT * FROM user
<where>
<if test="name != null">
AND name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
</where>
</select>
```
上述示例中,根据传入的参数name和age的值,动态生成了不同的SQL语句。如果name不为null,则会拼接AND name = #{name}到SQL语句中;如果age不为null,则会拼接AND age = #{age}到SQL语句中。
2. 使用choose、when和otherwise标签生成动态SQL语句:
```xml
<select id="getUserList" resultType="User">
SELECT * FROM user
<where>
<choose>
<when test="name != null">
AND name = #{name}
</when>
<when test="age != null">
AND age = #{age}
</when>
<otherwise>
AND status = 1
</otherwise>
</choose>
</where>
</select>
```
上述示例中,根据传入的参数name和age的值,动态生成了不同的SQL语句。如果name不为null,则会拼接AND name = #{name}到SQL语句中;如果age不为null,则会拼接AND age = #{age}到SQL语句中;如果name和age都为null,则会拼接AND status = 1到SQL语句中。
阅读全文