Mybatis在注解上如何實(shí)現(xiàn)動(dòng)態(tài)SQL
在注解上實(shí)現(xiàn)動(dòng)態(tài)SQL
使用Mybatis注解實(shí)現(xiàn)sql語句,但是有些時(shí)候有些字段是空的,這時(shí)候這個(gè)空的字段就要從條件查詢語句中刪除,這個(gè)時(shí)候就需要用到動(dòng)態(tài)Sql。
注解的動(dòng)態(tài)語句支持以下
trim
where
set
foreach
if
choose
when
otherwise
bind
@Select({"<script> " + "select * from t_user " + "where 1=1 " + "<if test='userId!=null'> and id = #{userId}</if> " + "</script>"})
要加上標(biāo)簽就可以實(shí)現(xiàn)條件判斷
但是在無法使用大于號(hào) 、小于號(hào),那如何解決這問題呢,其實(shí)只要把大于號(hào)、小于號(hào)轉(zhuǎn)義即可
注解方式動(dòng)態(tài)sql寫法和注意事項(xiàng)
@Select({"<script>" + "select * from tb_examine" + "<where> 1 = 1" + "<if test = \" employeeId != null and employeeId != '' \"> AND employee_id = #{employeeId} </if>" + "<if test = \" gradeId != null and gradeId != '' \"> AND grade_id = #{gradeId} </if>" + "<if test = \" year != null and year != '' \"> AND year like #{year} </if>" + "<if test = \" (statrMonth != null and statrMonth != '') and (endMonth == null or endMonth == '') \"> AND month >= #{statrMonth} </if>" + "<if test = \" (statrMonth == null or statrMonth == '') and (endMonth != null and endMonth != '') \"> AND month <= #{endMonth} </if>" + "<if test = \" (statrMonth != null and statrMonth != '') and (endMonth != null and endMonth != '') \">AND month >= #{statrMonth} AND month <= #{endMonth} </if>" + "</where>" + "</script>"}) public List<Examine> getName(Examine examine);
判斷字符串為空串 用單引號(hào)
大于等于用
小于等于用
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot消息國際化配置實(shí)現(xiàn)過程解析
這篇文章主要介紹了SpringBoot消息國際化配置實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07Spring Cloud Gateway重試機(jī)制原理解析
這篇文章主要介紹了Spring Cloud Gateway重試機(jī)制原理解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08詳解在spring boot中配置多個(gè)DispatcherServlet
本篇文章主要介紹了詳解在spring boot中配置多個(gè)DispatcherServlet,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-03-03java 對(duì)象參數(shù)去空格方式代碼實(shí)例
這篇文章主要介紹了java 對(duì)象參數(shù)去空格方式代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10SSH框架網(wǎng)上商城項(xiàng)目第18戰(zhàn)之過濾器實(shí)現(xiàn)購物登錄功能的判斷
這篇文章主要為大家詳細(xì)介紹了SSH框架網(wǎng)上商城項(xiàng)目第18戰(zhàn):過濾器實(shí)現(xiàn)購物登錄功能的判斷,感興趣的小伙伴們可以參考一下2016-06-06詳解Java在redis中進(jìn)行對(duì)象的緩存
這篇文章主要介紹了Java在redis中進(jìn)行對(duì)象的緩存,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03Java struts2 validate用戶登錄校驗(yàn)功能實(shí)現(xiàn)
這篇文章主要為大家詳細(xì)介紹了Java struts2 validate用戶登錄校驗(yàn)功能實(shí)現(xiàn)的具體步驟,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-05-05