Mybatis動(dòng)態(tài)SQL介紹和實(shí)例
在實(shí)際開發(fā)中,業(yè)務(wù)需要,查詢條件是不確定的,查詢條件可能有多條也可能沒(méi)有,這時(shí)候就需要用到動(dòng)態(tài)的sql語(yǔ)句實(shí)現(xiàn)查詢條件判定。
一、if標(biāo)簽
在一些高級(jí)查詢中,查詢條件存在的個(gè)數(shù)不確定。如,SELECT * FROM user WHERE username LIKE '%明%' AND sex = '1';
例子1:
例子2:
二、choose, when, otherwise 元素
類似于Java 的 switch 語(yǔ)句,choose 為 switch,when 為 case,otherwise 則為 default。choose 是或(or)的關(guān)系。用于分支判斷,類似于java中的switch case,只會(huì)滿足所有分支中的一個(gè)
例子1:
??? choose 類似 switch,when 類似 case,otherwise 類似 default
三、trim
trim元素來(lái)定制想要的功能
trim 可以在條件判斷完的SQL語(yǔ)句前后 添加或者去掉指定的字符
prefixOverrides ?? ?去掉前綴
suffix ?? ?添加后綴
suffixOverrides ?? ?去掉后綴
例子1:
例子2:
四、set標(biāo)簽
set 元素可以被用于動(dòng)態(tài)包含需要更新的列,而舍去其他的。
用于解決修改操作中SQL語(yǔ)句中可能多出逗號(hào)的問(wèn)題
例子1:
標(biāo)簽: