動態sql之各種標籤的使用以及詳細配置

2021-10-07 15:52:35 字數 3142 閱讀 9911

在乙個複雜得業務邏輯的背景下,比如乙個電商**

​ 在乙個手機表中,可能需要按照品牌,型號,顏色,記憶體等多個屬性對手機表進行查詢,如果對乙個屬性寫乙個查詢方法,那麼**將會非常複雜,所以我們思考:有沒有一種可能只寫一種方法就可以查詢出來業務。那麼他來了-----動態sql

需求:查詢user表的資料。多個條件無腦組合

第一步:定義介面,介面中新增查詢方法

**注意:**定義方法時要考慮返回值與輸入引數

第二步:對映檔案中新增方法實現配置

使用if標籤對條件做出判斷

<

if test=

"id!=null"

>

id=#

>

if(id!=null)

}

上述解決方案中存在where 1=1的無意義sql,使用where標籤解決1=1的問題

注意:if標籤做條件判斷,test屬性中新增判斷新增,多條件時使用and拼接where標籤幫我們解決了1=1問題的同時,還可以幫助我們去掉第乙個and

需求:修改person資訊,傳什麼改什麼

第一步:介面中新增修改方法

第二步:對映檔案中新增實現

**注意:**set標籤可以幫助我們解決最後乙個逗號的問題

**prefix:**字首,在執行trim標籤內語句時,在前面拼接的值(set)

**suffixoverrides:**忽略字尾,在執行trim標籤內語句時,在最後忽略的值(,)

prefixoverrides:忽略字首(and/or)

suffix:字尾(加上where)

第一步:定義介面方法

第二步:對映檔案中新增方法實現

注意:

choose:表示單選,標籤下的條件只選擇乙個執行

choose相當於switch語句

when標籤相當於case語句

otherwise標籤相當於default語句

foreach標籤主要是用來做資料的迴圈遍歷例如:select * from person where id in(4,5,6)在這樣的語句中,需要根據乙個集合或者乙個陣列傳入的引數進行查詢。

第一步:介面中定義方法

使用集合接收傳過來的id串

第二步:對映檔案中新增方法的實現配置foreach標籤:用於遍歷集合/陣列

collection屬性:代表要遍歷的集合元素,如果遍歷的是集合,屬性值可以是collection,也可以是list

open屬性:代表語句的開始部分(字首)

close屬性:代表結束部分(字尾)

item屬性:代表遍歷集合的每個元素,生成的變數名,取名要做到見名知意。

separator屬性:代表分隔符

第三步:測試**

第一步:介面方法

第二步:對映檔案

注意:使用foreach遍歷 陣列時,collection屬性值為array

第一步:建立乙個查詢物件queryvo(補充查詢條件)

第二步:定義介面方法

第三步:新增對映

​ 注意:

​ 當foreach遍歷的是pojo的集合屬性或者陣列屬性時,collection的屬性值屬性的名稱

第四步:測試**

第三步:新增對映**

[外鏈轉存中…(img-xukhckcg-1593526500513)]

​ 注意:

​ 當foreach遍歷的是pojo的集合屬性或者陣列屬性時,collection的屬性值屬性的名稱

第四步:測試**

Mybaits動態sql之sql標籤

使用sql標籤可以重複利用該標籤中的sql語句,需要與include標籤配合使用。舉乙個例子,重複利用id,name,age basesql id name,age sql query resulttype user parametertype user select refid basesql i...

mybatis動態SQL之if標籤

我們根據實體類的不同取值,使用不同的 sql 語句來進行查詢。比如在 id 如果不為空時可以根據 id 查詢,如果 username 不同空時還要加入使用者名稱作為條件。這種情況在我們的多條件組合查詢中經常會碰到。根據使用者資訊,查詢使用者列表 param user return listfindb...

CMFCColorButton的使用以及重繪

cmfccolorbutton是visual studio 2008 sp1版本以上提供的顏色採集器。系統環境 windows 7 程式設計環境 visual studio 2008 sp1 下面介紹下使用步驟 1.新建基於對話方塊的工程,名稱為mycolorbuttondemo 2.拖動乙個按鈕到...