where
<where>可以自动帮你处理 WHERE 和 AND/OR 拼接问题
为什么要用 <where>
你如果不用 <where>,通常要这样写:
xml
SELECT * FROM user
WHERE 1=1
<if test="name != null">
AND name = #{name}
</if>where的作用
自动加 WHERE
如果内部有条件 → 自动加
WHERE如果没有条件 → 不加
xml
<select id="queryUser" resultType="User">
SELECT * FROM user
<where>
<if test="name != null and name != ''">
AND name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
</where>
</select>自动去掉开头的 AND / OR
xml
<where>
<if test="name != null">
AND name = #{name}
</if>
</where>最终SQL:
WHERE name = ?