要編寫復雜的MyBatis條件查詢,可以使用動態(tài)SQL語句和條件判斷來實現(xiàn)。以下是一個示例:
<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>
在這個示例中,我們根據(jù)傳入的參數(shù)動態(tài)構(gòu)建SQL查詢語句。如果傳入的參數(shù)不為空,就會添加相應的條件判斷語句。這樣就可以根據(jù)不同的條件來查詢對應的數(shù)據(jù)。
另外,還可以使用動態(tài)條件來實現(xiàn)更復雜的查詢邏輯。例如,使用choose、when、otherwise標簽來實現(xiàn)多條件判斷,或者使用foreach標簽來實現(xiàn)對集合類型參數(shù)的遍歷操作。
總之,MyBatis提供了豐富的動態(tài)SQL語法來支持復雜的條件查詢,可以根據(jù)具體的需求靈活運用。