MyBatis動(dòng)態(tài)SQL元素
1.<if>
滿足條件就執(zhí)行對(duì)應(yīng)的sql語句
小提示:
? ? 問:為什么要用where 1=1
? ? 答:用于用戶多個(gè)選擇項(xiàng)拼湊where條件時(shí)使用,簡(jiǎn)化sql復(fù)雜程度余蟹,避免了where后面第一個(gè)詞是and或者or之類的關(guān)鍵詞
2.<choose>卷胯、<when>、<otherwise>
多個(gè)選擇只執(zhí)行一個(gè)
3.<where>
相當(dāng)于where 1=1
4.<trim>
相當(dāng)于where 1=1,prefix前綴威酒,prefixOverrides要去除的特殊字符
5.<set>
用于更新時(shí)對(duì)更新條件進(jìn)行處理窑睁,自動(dòng)添加set,自動(dòng)去除sql語句種最后一個(gè)多余的逗號(hào)
6.<foreach>
通常在In條件語句種使用
對(duì)傳入的參數(shù)進(jìn)行遍歷并進(jìn)行SQL動(dòng)態(tài)組裝
· item:配置的是循環(huán)中當(dāng)前的元素。
· index:配置的是當(dāng)前元素在集合的位置下標(biāo)葵孤。
· collection:配置的list是傳遞過來的參數(shù)類型(首字母小寫)担钮,它可以是一個(gè)array、list(或collection)尤仍、Map集合的鍵箫津、POJO包裝類中數(shù)組或集合類型的屬性名等。
· open和close:配置的是以什么符號(hào)將這些集合元素包裝起來。
· separator:配置的是各個(gè)元素的間隔符
7.<bind>
用于模糊查詢