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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
java如何確定一個鏈表有環(huán)及入口節(jié)點
這篇文章主要介紹了java如何確定一個鏈表有環(huán)及入口節(jié)點,想了解數(shù)據(jù)結構的同學可以參考下2021-04-04Windows下Java+MyBatis框架+MySQL的開發(fā)環(huán)境搭建教程
這篇文章主要介紹了Windows下Java+MyBatis框架+MySQL的開發(fā)環(huán)境搭建教程,Mybatis對普通SQL語句的支持非常好,需要的朋友可以參考下2016-04-04Java通過綁定實現(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-10Java中String.split()的最詳細源碼解讀及注意事項
以前經(jīng)常使用String.split()方法,但是從來沒有注意,下面這篇文章主要給大家介紹了關于Java中String.split()最詳細源碼解讀及注意事項的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下2022-07-07