MyBatis常用動態(tài)標(biāo)簽
1、if
2.choose、when、otherwise
????????choose標(biāo)簽是按順序判斷其內(nèi)部when標(biāo)簽中的test條件是否成立,如果有一個成立,則choose結(jié)束;如果所有的when條件都不滿足時,則執(zhí)行otherwise中的SQL。類似于java的switch語句。
3.where
4.set
5.trim
? ??????trim標(biāo)簽可實(shí)現(xiàn)where/set標(biāo)簽的功能
????? ??prefix:表示在trim標(biāo)簽包裹的SQL前添加指定內(nèi)容
????? ??suffix:表示在trim標(biāo)簽包裹的SQL末尾添加指定內(nèi)容
????? ??prefixOverrides:表示去掉(覆蓋)trim標(biāo)簽包裹的SQL指定首部內(nèi)容,去掉多個內(nèi)容寫法為and |or(中間空格不能省略)(一般用于if判斷時去掉多余的AND |OR)
????????suffixOverrides:表示去掉(覆蓋)trim標(biāo)簽包裹的SQL指定尾部內(nèi)容(一般用于update語句if判斷時去掉多余的逗號)
6.foreach
? ??????collection:迭代集合的名稱,可以使用@Param注解指定,該參數(shù)為必選(java入?yún)?,相對?{listName})
? ??????item:表示本次迭代獲取的元素,若collection為List、Set或數(shù)組,則表示其中元素;若collection為Map,則代表key-value的value,該參數(shù)為必選
? ??????index:在List、Set和數(shù)組中,index表示當(dāng)前迭代的位置,在Map中,index指元素的key,該參數(shù)是可選項(xiàng)
? ??????open:表示該語句以什么開始,最常使用的是左括弧”(”,MyBatis會將該字符拼接到foreach標(biāo)簽包裹的SQL語句之前,并且只拼接一次,該參數(shù)是可選項(xiàng)
? ??????close:表示該語句以什么結(jié)束,最常使用的是右括弧”)”,MyBatis會將該字符拼接到foreach標(biāo)簽包裹的SQL語句末尾,該參數(shù)是可選項(xiàng)
? ??????separator:MyBatis會在每次迭代后給SQL語句添加上separator屬性指定的字符,該參數(shù)是可選項(xiàng)