上一篇文章我們講解了《Mybatis—輸入輸出映射(五)》下面我們繼續來講解動態sql。
【什麼是動態sql】
mybatis核心 對sql語句進行靈活操作,通過表達式進行判斷,對sql進行靈活拼接、組裝。
【需求】
用戶信息綜合查詢列表和用戶信息查詢列表總數這兩個statement的定義使用動態sql。
對查詢條件進行判斷,如果輸入參數不爲空才進行查詢條件拼接。
【mapper.xml】
【測試代碼】
【sql片段】
1、需求
將上邊實現的動態sql判斷代碼塊抽取出來,組成一個sql片段。其它的statement中就可以引用sql片段。方便程序員進行開發。
2、定義sql片段
3、引用sql片段
在mapper.xml中定義的statement中引用sql片段:
【foreach】
向sql傳遞數組或List,mybatis使用foreach解析
1、需求
在用戶查詢列表和查詢總數的statement中增加多個id輸入查詢。
sql語句如下:
//第一種方法:
SELECT * FROM USER WHERE id=1 OR id=10 OR id=16
//第二種方法:
SELECT * FROM USER WHERE id IN(1,10,16)
2、在輸入參數類型中添加List ids傳入多個id
3、修改mapper.xml
WHERE id=1 OR id=10 OR id=16
在查詢條件中,查詢條件定義成一個sql片段,需要修改sql片段。
4、測試代碼
5、另外一個sql的實現
好了小編今天的總結就到這裏了。。歡迎關注下面的內容《Mybatis—高級映射之一對一查詢(七)》。