MyBatis的choose標簽用于在多個條件之間進行選擇,類似于Java中的switch語句。它可以根據滿足條件的第一個子標簽執行對應的SQL語句。
choose標簽包含多個when和一個otherwise子標簽。每個when子標簽包含一個test屬性,用于指定條件判斷的表達式。當滿足某個when子標簽的條件時,對應的SQL語句會被執行。如果沒有任何when子標簽的條件滿足,那么otherwise子標簽中的SQL語句會被執行。
以下是一個使用choose標簽的示例:
<select id="getUser" parameterType="int" resultType="User">
SELECT *
FROM users
WHERE id = #{id}
<choose>
<when test="enabled != null">
AND enabled = #{enabled}
</when>
<when test="name != null">
AND name = #{name}
</when>
<otherwise>
AND age = #{age}
</otherwise>
</choose>
</select>
在上面的示例中,如果參數enabled不為空,那么會執行AND enabled = #{enabled}的SQL語句。如果參數name不為空,那么會執行AND name = #{name}的SQL語句。如果以上兩個條件都不滿足,那么會執行AND age = #{age}的SQL語句。
choose標簽可以幫助我們編寫更靈活的SQL語句,根據不同的條件執行不同的查詢邏輯。