要編寫復雜的MyBatis條件查詢,可以使用動態SQL語句和條件判斷來實現。以下是一個示例:
<select id="selectUsers" resultType="User">
SELECT * FROM users
<where>
<if test="name != null">
AND name = #{name}
</if>
<if test="age != null">
AND age = #{age}
</if>
<if test="gender != null">
AND gender = #{gender}
</if>
<if test="startDate != null and endDate != null">
AND created_at BETWEEN #{startDate} AND #{endDate}
</if>
</where>
</select>
在這個示例中,我們根據傳入的參數動態構建SQL查詢語句。如果傳入的參數不為空,就會添加相應的條件判斷語句。這樣就可以根據不同的條件來查詢對應的數據。
另外,還可以使用動態條件來實現更復雜的查詢邏輯。例如,使用choose、when、otherwise標簽來實現多條件判斷,或者使用foreach標簽來實現對集合類型參數的遍歷操作。
總之,MyBatis提供了豐富的動態SQL語法來支持復雜的條件查詢,可以根據具體的需求靈活運用。