mybatis動(dòng)態(tài)SQL?if的test寫(xiě)法及規(guī)則詳解
mybatis動(dòng)態(tài)SQL if的test寫(xiě)法
使用動(dòng)態(tài)SQL最常見(jiàn)情景
是根據(jù)條件包含 where 子句的一部分。
比如:
<select id="findActiveBlogWithTitleLike"
resultType="Blog">
SELECT * FROM BLOG
WHERE state = ‘ACTIVE'
<if test="title != null">
AND title like #{title}
</if>
</select>
其中 test 的表達(dá)式是基于OGNL 的表達(dá)式,語(yǔ)法規(guī)則也是OGNL的語(yǔ)法規(guī)則。
官方語(yǔ)法規(guī)則手冊(cè)
OGNL官方表達(dá)式手冊(cè):https://commons.apache.org/proper/commons-ognl/language-guide.html
舉個(gè)例子

上圖是官方指導(dǎo)的一部分,主要說(shuō)明了,在test中無(wú)法使用<= 等符號(hào)可以使用 lte 代替。
| 運(yùn)算符 | 代替字符 |
|---|---|
| < | lt |
| <= | lte |
| > | gt |
| >= | gte |
mybatis if test動(dòng)態(tài)sql語(yǔ)句
<select id="getStudentId" parameterType="java.lang.String" resultType="java.lang.String">
? ? ? ? SELECT MAX(Student_ID) FROM Student
? ? ? ? <where>
? ? ? ? ? ? <if test="classid !=null and classid !=''"> ?
? ? ? ? ? ? ? ? AND CLASS_ID = {student.classID}?
? ? ? ? ? ? </if>
? ? ? ? ? ? <if test="age ==null or age ==''"> ?
? ? ? ? ? ? ? ? AND AGE = {student.age}
? ? ? ? ? ? </if>
? ? ? ? </where>
</select>以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Cloud Stream 高級(jí)特性使用詳解
這篇文章主要為大家介紹了Spring Cloud Stream 高級(jí)特性使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
Spring MVC攔截器_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
Spring MVC的攔截器,是屬于HandlerMapping級(jí)別的,可以有多個(gè)HandlerMapping ,每個(gè)HandlerMapping可以有自己的攔截器,具體內(nèi)容詳情大家通過(guò)本文學(xué)習(xí)吧2017-08-08
Eclipse如何導(dǎo)入Maven項(xiàng)目詳解(新手初學(xué))
這篇文章主要介紹了Eclipse如何導(dǎo)入Maven項(xiàng)目詳解(新手初學(xué)),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
Mybatis查詢(xún)Sql結(jié)果未映射到對(duì)應(yīng)得實(shí)體類(lèi)上的問(wèn)題解決
使用mybatis查詢(xún)表數(shù)據(jù)得時(shí)候,發(fā)現(xiàn)對(duì)應(yīng)得實(shí)體類(lèi)字段好多都是null,本文主要介紹了Mybatis查詢(xún)Sql結(jié)果未映射到對(duì)應(yīng)得實(shí)體類(lèi)上的問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02
關(guān)于Java中的頂層類(lèi)修飾問(wèn)題
這篇文章主要介紹了關(guān)于Java中的頂層類(lèi)修飾問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
SpringBoot中@EnableAsync和@Async注解的使用小結(jié)
在SpringBoot中,可以通過(guò)@EnableAsync注解來(lái)啟動(dòng)異步方法調(diào)用的支持,通過(guò)@Async注解來(lái)標(biāo)識(shí)異步方法,讓方法能夠在異步線程中執(zhí)行,本文就來(lái)介紹一下,感興趣的可以了解一下2023-11-11
Spring Cloud Zuul添加過(guò)濾器過(guò)程解析
這篇文章主要介紹了Spring Cloud Zuul添加過(guò)濾器過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
mac下idea的svn密碼記不住的問(wèn)題及處理方法
這篇文章主要介紹了mac下idea的svn密碼記不住的問(wèn)題及處理方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09

