Mybatis—動態sql(六)

上一篇文章我們講解了《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—高級映射之一對一查詢(七)》。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章