在MyBatis中,可以使用if語句和choose語句來結合使用,以實現更靈活的條件判斷和處理邏輯。以下是一個示例:
<select id="getUserList" parameterType="map" resultType="User">
SELECT * FROM user
<where>
<choose>
<when test="status != null">
AND status = #{status}
</when>
<when test="name != null">
AND name = #{name}
</when>
<otherwise>
AND age >= #{minAge} AND age <= #{maxAge}
</otherwise>
</choose>
</where>
</select>
在上面的示例中,通過choose語句結合if語句,根據不同的條件判斷來動態生成SQL語句。如果傳入了status參數,則會根據status值進行篩選;如果傳入了name參數,則會根據name值進行篩選;如果都沒有傳入,則會根據傳入的minAge和maxAge參數進行篩選。
這樣可以根據不同的條件靈活地生成SQL語句,從而實現更加靈活和可復用的查詢邏輯。