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

上圖是官方指導的一部分,主要說明了,在test中無法使用<= 等符號可以使用 lte 代替。
| 運算符 | 代替字符 |
|---|---|
| < | lt |
| <= | lte |
| > | gt |
| >= | gte |
mybatis if test動態(tài)sql語句
<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>以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java如何確定一個鏈表有環(huán)及入口節(jié)點
這篇文章主要介紹了java如何確定一個鏈表有環(huán)及入口節(jié)點,想了解數(shù)據(jù)結(jié)構(gòu)的同學可以參考下2021-04-04
Windows下Java+MyBatis框架+MySQL的開發(fā)環(huán)境搭建教程
這篇文章主要介紹了Windows下Java+MyBatis框架+MySQL的開發(fā)環(huán)境搭建教程,Mybatis對普通SQL語句的支持非常好,需要的朋友可以參考下2016-04-04
Java通過綁定實現(xiàn)快速將數(shù)據(jù)導出至Excel
把數(shù)據(jù)導出至?Excel?是很常見的需求,而數(shù)據(jù)的持久化,往往又放在數(shù)據(jù)庫中,因此把數(shù)據(jù)庫中的數(shù)據(jù)導出到?Excel中,成了非常普遍的一個需求,下面我們就來看看Java如何通過綁定實現(xiàn)快速將數(shù)據(jù)導出至Excel吧2023-10-10
Java中String.split()的最詳細源碼解讀及注意事項
以前經(jīng)常使用String.split()方法,但是從來沒有注意,下面這篇文章主要給大家介紹了關(guān)于Java中String.split()最詳細源碼解讀及注意事項的相關(guān)資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2022-07-07

