天天看點

動态sql

​ Mybatis 的映射檔案中,前面我們的 SQL 都是比較簡單的,有些時候業務邏輯複雜時,我們的 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 中可将重複的 sql 提取出來,使用時用 include 引用即可,最終達到 sql 重用的目的

我們可以将一些重複性的 SQL 語句進行抽取,以達到複用的效果。

MyBatis映射檔案配置: