在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語句的編寫,使得代碼更加清晰易懂。