天天看點

【MyBatis架構】mapper配置檔案-關于動态sql

動态sql

1.什麼是動态sql

mybatis核心 對sql語句進行靈活操作,通過表達式進行判斷,對sql進行靈活拼接、組裝。

2.需求

使用者資訊綜合查詢清單和使用者資訊查詢清單總數這兩個statement的定義使用動态sql。

對查詢條件進行判斷,如果輸入參數不為空才進行查詢條件拼接。

3.mapper.xml

原查詢語句配置:

修改後的查詢語句配置:

4.測試代碼

測試結果:

1:張三

4:張三豐

輸出日志:

發現sql語句為select * from user where user.username like '%張三%' ,并沒有将sex拼接進去,說明我們的動态sql設定成功

相應的,把usercustom.setusername("張三");也注釋掉,發現輸出日志:

發現sql語句為select * from user,并沒有将sex和username拼接進去,說明我們的動态sql設定成功

5.sql片段

5.1需求

将上邊實作的動态sql判斷代碼塊抽取出來,組成一個sql片段。其它的statement中就可以引用sql片段。

友善程式員進行開發。

5.2定義sql片段

5.3引用sql片段

在mapper.xml中定義的statement中引用sql片段:

測試:

輸出日志:

說明sql片段引用成功

小結:

sql片段友善程式員進行開發

轉載請注明出處:http://blog.csdn.net/acmman/article/details/46581349