mybatis在xml使用exists与if
时间: 2024-05-10 10:15:27 浏览: 178
MyBatis中可以在XML中使用`<if>`和`<exists>`标签进行条件判断和数据查询。
`<if>`标签可以用来动态生成SQL语句中的条件语句,它的用法如下:
```xml
<select id="findUserByNameAndAge" parameterType="User" resultType="User">
SELECT * FROM user WHERE 1=1
<if test="name != null">
AND name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
</select>
```
上面的例子中,`<if>`标签用于判断当`name`或`age`属性不为空时,将其作为查询条件拼接到SQL语句中。
`<exists>`标签用于在SQL语句中判断某个条件是否存在,它的用法如下:
```xml
<select id="findUserByDept" parameterType="Dept" resultType="User">
SELECT * FROM user u WHERE EXISTS (
SELECT 1 FROM dept d WHERE u.dept_id = d.id
<if test="name != null">
AND d.name = #{name}
</if>
)
</select>
```
上面的例子中,`<exists>`标签用于查询在`dept`表中存在`name`属性为`#{name}`的记录,然后将其作为查询条件拼接到SQL语句中。注意,`<if>`标签必须放在`<exists>`标签内部,以便根据不同条件动态生成查询语句。
阅读全文