在MyBatis中,choose和when標簽通常與其他條件判斷標簽(如if和where)一起使用,用于根據條件選擇不同的SQL語句塊。下面是一個簡單的示例:
<select id="selectUsers" resultType="User">
SELECT *
FROM users
<where>
<choose>
<when test="name != null and name != ''">
AND name = #{name}
</when>
<when test="age != null">
AND age = #{age}
</when>
<otherwise>
AND status = 'active'
</otherwise>
</choose>
</where>
</select>
在上面的示例中,choose標簽包含了多個when標簽和一個otherwise標簽。根據條件的不同,MyBatis會選擇匹配的when標簽中的SQL語句塊來拼接到最終的SQL語句中。如果所有的when標簽都不匹配,則會使用otherwise標簽中的SQL語句塊。
通過選擇和when標簽的配合,可以根據不同的條件動態生成SQL語句,從而實現靈活的條件查詢功能。