在MyBatis中,<where>
标签主要用于在动态SQL语句中添加 WHERE 子句。它的作用是在生成SQL语句时,只有在至少一个条件被满足时,才会在 WHERE 子句中添加该条件,并且会自动去除多余的 AND 或 OR 连接符,使得生成的SQL语句更加符合语法要求。
例如,假设有两个条件 name
和 age
,我们需要根据这两个条件来动态生成SQL语句:
<select id="getUserList" parameterType="map" 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
,那么生成的SQL语句为:
SELECT * FROM user
WHERE name = #{name}
如果传入的参数中同时包含 name
和 age
,那么生成的SQL语句为:
SELECT * FROM user
WHERE name = #{name} AND age = #{age}
通过使用 <where>
标签,可以简化动态SQL语句的编写,使得代码更加清晰易懂。