写一段mybatis的动态sql事例
时间: 2023-05-31 19:04:25 浏览: 74
假设我们有一个用户表,其中有id、name、age、address四个字段。我们需要根据前端传递的参数进行查询,如果参数不为空就加入到SQL中。可以使用MyBatis的动态SQL来实现。
示例代码如下:
```xml
<select id="getUserList" resultMap="userResultMap">
SELECT * FROM user
<where>
<if test="id != null">
AND id = #{id}
</if>
<if test="name != null">
AND name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
<if test="address != null">
AND address = #{address}
</if>
</where>
</select>
```
在上面的代码中,我们使用了<where>标签来包裹动态SQL,<if>标签来判断参数是否为空,如果不为空就拼接到SQL语句中。这样就可以根据传递的参数进行动态查询。
例如,如果前端传递了id和name两个参数,那么查询语句就会变成:
```sql
SELECT * FROM user
WHERE id = #{id}
AND name = #{name}
```
如果前端只传递了name和age两个参数,查询语句就会变成:
```sql
SELECT * FROM user
WHERE name = #{name}
AND age = #{age}
```
通过动态SQL,我们可以根据不同的参数组合生成不同的SQL语句,提高了SQL语句的灵活性和可重用性。