在MyBatis中進行條件查詢時,可以使用<choose>
、<when>
和<otherwise>
標簽來優化條件判斷,類似于Java中的if-else if-else
結構。
下面是一個示例,假設有一個需求是根據不同的條件來查詢用戶信息:
<select id="getUserList" resultType="User">
SELECT * FROM user
<where>
<choose>
<when test="gender != null">
AND gender = #{gender}
</when>
<when test="age != null">
AND age = #{age}
</when>
<otherwise>
AND 1=1
</otherwise>
</choose>
</where>
</select>
在上面的示例中,根據不同的條件判斷來拼接不同的SQL查詢條件。如果gender
不為null,則查詢條件為AND gender = #{gender}
;如果age
不為null,則查詢條件為AND age = #{age}
;否則查詢條件為AND 1=1
,即不添加任何查詢條件。
這樣可以使SQL語句更加簡潔和可讀性更高,同時也能更好地維護和擴展條件查詢邏輯。