MyBatis動態標簽用于在SQL語句中根據不同條件生成不同的SQL片段,以實現動態的SQL查詢。
常用的MyBatis動態標簽包括:
<if>
標簽:用于在SQL語句中添加條件判斷,默認情況下,如果條件為false,則該標簽中的SQL片段將被忽略。示例:
<select id="getUserList" resultType="User">
SELECT *
FROM users
<where>
<if test="name != null">
AND name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
</where>
</select>
<choose>
、<when>
和<otherwise>
標簽:用于提供多個選擇條件,類似于Java中的switch語句。示例:
<select id="getUserList" resultType="User">
SELECT *
FROM users
<where>
<choose>
<when test="name != null">
AND name = #{name}
</when>
<when test="age != null">
AND age = #{age}
</when>
<otherwise>
AND status = 'active'
</otherwise>
</choose>
</where>
</select>
<trim>
和<set>
標簽:用于在生成動態SQL時添加條件判斷,以及去除生成SQL中的不必要的逗號或AND關鍵字。示例:
<update id="updateUser" parameterType="User">
UPDATE users
<set>
<if test="name != null">
name = #{name},
</if>
<if test="age != null">
age = #{age},
</if>
</set>
WHERE id = #{id}
</update>
通過使用這些動態標簽,我們可以根據不同的條件生成不同的SQL語句,使得SQL查詢更加靈活和可復用。