如何在MyBatis中使用动态SQL?
时间: 2024-03-17 13:40:15 浏览: 106
MyBatis实现动态SQL的实现方法
MyBatis中的动态SQL可以根据不同的条件生成不同的SQL语句,一般可以通过使用if、choose、when、otherwise、foreach等标签来实现。以下是使用动态SQL的示例:
1. if标签
```
<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>
```
2. choose、when、otherwise标签
```
<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>
```
3. foreach标签
```
<update id="batchUpdateUser">
<foreach collection="list" item="user" separator=";">
UPDATE user SET
<if test="user.name != null">
name = #{user.name}
</if>
<if test="user.age != null">
age = #{user.age}
</if>
WHERE id = #{user.id}
</foreach>
</update>
```
以上是使用动态SQL的示例,你可以根据具体的需求来使用不同的标签组合生成需要的SQL语句。
阅读全文