mybatis註解sqlif
⑴ Mybatis 動態sql語句if標簽和where標簽結合巧妙使用
在Mybatis中,動態SQL的if標簽和where標簽可以巧妙地結合,以實現靈活的查詢條件。假設我們的需求是根據電話和名字查找用戶數據。
初始的SQL查詢可能看起來像這樣:
SELECT * FROM users WHERE mobile LIKE '%{mobile}' AND gender = #{gender}
在Mapper.xml文件中,配置的動態SQL如下:
<select id="getUserByPhoneName">
SELECT * FROM users
<choose>
<when test="gender != null">
AND gender = #{gender}
</when>
<otherwise>
-- 如果gender未傳,則不添加此條件
</otherwise>
</choose>
AND mobile LIKE #{mobile}
</select>
在代碼塊2-2中,我們對性別條件進行了改進,使用if標簽來判斷,僅當gender為0或1時執行查詢,代碼如下:
<if test="gender != null">
AND gender = #{gender}
</if>
如果要查詢所有用戶信息而不指定gender和username,可以修改代碼塊2-3,移除if標簽:
<!-- 移除if標簽 -->
AND mobile LIKE #{mobile}
總結,通過結合if標簽,我們可以靈活地根據傳入的參數動態調整SQL查詢條件。這在處理不同場景下的用戶查詢時顯得尤其有用。
⑵ mybatis註解配置文件中查詢分頁統計總記錄數sql語句怎麼寫
沒用過這種寫法,看你SQL的寫法,應該是mysql吧,那簡單咯啊,直接把分頁位置放到parameter這個map裡面去,然後在XML裡面寫<if test="offset != null and limit != null">limit #{offset},#{limit}</if> ,把這樣的放在where後面就行了啊,如果parameter這個map裡面根據key取到offset和limit,自然就會有分頁的哦!