Mybatis 的映射檔案中,前面我們的 SQL 都是比較簡單的,有些時候業務邏輯複雜時,我們的 SQL是動态變化的,此時在前面的學習中我們的 SQL 就不能滿足要求了。
例如:

我們根據實體類的不同取值,使用不同的 SQL語句來進行查詢。比如在 id如果不為空時可以根據id查詢,如果username 不同空時還要加入使用者名作為條件。這種情況在我們的多條件組合查詢中經常會碰到。
如下圖:
改造:
當查詢條件id和username都存在時,控制台列印的sql語句如下:
當查詢條件隻有id存在時,控制台列印的sql語句如下:
總結文法:
循環執行sql的拼接操作,例如:SELECT * FROM student WHERE id IN (1,2,5)。
測試代碼片段如下:
屬性
collection:參數容器類型, (list-集合, array-數組)。
open:開始的 SQL 語句。
close:結束的 SQL 語句。
item:參數變量名。
separator:分隔符。
Sql 中可将重複的 sql 提取出來,使用時用 include 引用即可,最終達到 sql 重用的目的
我們可以将一些重複性的 SQL 語句進行抽取,以達到複用的效果。
MyBatis映射檔案配置: