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 的表達(dá)式是基于OGNL 的表達(dá)式,語法規(guī)則也是OGNL的語法規(guī)則。
官方語法規(guī)則手冊
OGNL官方表達(dá)式手冊:https://commons.apache.org/proper/commons-ognl/language-guide.html
舉個例子
上圖是官方指導(dǎo)的一部分,主要說明了,在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)文章
springboot下添加日志模塊和設(shè)置日志文件輸出的方法
日志的使用將通過SLF4J來使用,SLF4J是一個為Java應(yīng)用提供簡單日志記錄的接口,在Spring框架中,SLF4J常常用于處理框架本身以及應(yīng)用程序的日志記錄,本文給大家介紹springboot下添加日志模塊和設(shè)置日志文件輸出的相關(guān)知識,感興趣的朋友一起看看吧2023-12-12java如何確定一個鏈表有環(huán)及入口節(jié)點
這篇文章主要介紹了java如何確定一個鏈表有環(huán)及入口節(jié)點,想了解數(shù)據(jù)結(jié)構(gòu)的同學(xué)可以參考下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ù)導(dǎo)出至Excel
把數(shù)據(jù)導(dǎo)出至?Excel?是很常見的需求,而數(shù)據(jù)的持久化,往往又放在數(shù)據(jù)庫中,因此把數(shù)據(jù)庫中的數(shù)據(jù)導(dǎo)出到?Excel中,成了非常普遍的一個需求,下面我們就來看看Java如何通過綁定實現(xiàn)快速將數(shù)據(jù)導(dǎo)出至Excel吧2023-10-10Java中String.split()的最詳細(xì)源碼解讀及注意事項
以前經(jīng)常使用String.split()方法,但是從來沒有注意,下面這篇文章主要給大家介紹了關(guān)于Java中String.split()最詳細(xì)源碼解讀及注意事項的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07