MyBatis中的大于等于、小于等于寫法
在 MyBatis 的 XML 映射文件中,由于 XML 語法的限制,不能直接使用 < 和 > 符號(hào)(會(huì)被解析為 XML 標(biāo)簽),需要使用轉(zhuǎn)義字符或 CDATA 塊來表示大于等于(≥)和小于等于(≤)。
以下是常用的寫法:
1. 使用轉(zhuǎn)義字符(推薦)
xml
<!-- 大于等于:≥ -->
<if test="startTime != null">
AND create_time >= #{startTime}
</if>
<!-- 小于等于:≤ -->
<if test="endTime != null">
AND create_time <= #{endTime}
</if>對(duì)應(yīng)的轉(zhuǎn)義字符對(duì)照表:
>表示>(大于)<表示<(小于)>=表示>=(大于等于)<=表示<=(小于等于)
2. 使用 CDATA 塊
如果覺得轉(zhuǎn)義字符可讀性差,可以用 CDATA 塊包裹包含特殊符號(hào)的 SQL 片段:
xml
<if test="startTime != null">
<![CDATA[ AND create_time >= #{startTime} ]]>
</if>
<if test="endTime != null">
<![CDATA[ AND create_time <= #{endTime} ]]>
</if>CDATA 塊中的內(nèi)容會(huì)被 MyBatis 原樣解析,不進(jìn)行 XML 語法檢查。
注意事項(xiàng)
- 在注解方式的 SQL 中(如
@Select),可以直接使用>=和<=,無需轉(zhuǎn)義 - 動(dòng)態(tài) SQL 中使用時(shí),注意結(jié)合
<if>標(biāo)簽做非空判斷,避免出現(xiàn)null值導(dǎo)致的 SQL 錯(cuò)誤
兩種方式效果相同,根據(jù)團(tuán)隊(duì)編碼規(guī)范選擇即可,轉(zhuǎn)義字符方式在多數(shù)項(xiàng)目中更常見。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatis實(shí)現(xiàn)表連接查詢寫法(三種對(duì)應(yīng)關(guān)系)的方法總結(jié)
這篇文章主要介紹了MyBatis實(shí)現(xiàn)表連接查詢寫法(一對(duì)一關(guān)系、一對(duì)多關(guān)系、多對(duì)多關(guān)系)的方法,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2023-01-01
Java之stream流求字段累計(jì)和的3種方法總結(jié)
Java中Stream流用來幫助處理集合,類似于數(shù)據(jù)庫中的操作,下面這篇文章主要介紹了Java之stream流求字段累計(jì)和的3種方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-09-09
一個(gè)Java工程師超實(shí)用的17個(gè)日常效率工具
這篇文章主要總結(jié)介紹了一個(gè)Java工程師超實(shí)用的17個(gè)日常效率工具,中包含了大多數(shù)開發(fā)人員已經(jīng)使用、正在使用或?qū)硪欢〞?huì)用到的高效工具,每個(gè)工具都給出了詳細(xì)的代碼示例,需要的朋友可以參考下2026-03-03
SpringCloud?Feign使用ApacheHttpClient代替默認(rèn)client方式
這篇文章主要介紹了SpringCloud?Feign使用ApacheHttpClient代替默認(rèn)client方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
mybatis引用其他文件中的sql片段的實(shí)現(xiàn)
Mybatis中也是支持引用其他Mapper文件中的SQL片段的,本文就來介紹一下如何使用,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-03-03
Springboot 整合 Java DL4J 實(shí)現(xiàn)醫(yī)學(xué)影像診斷功能介紹
本文介紹如何利用SpringBoot整合Java Deeplearning4j實(shí)現(xiàn)醫(yī)學(xué)影像診斷功能,重點(diǎn)介紹了卷積神經(jīng)網(wǎng)絡(luò)在處理醫(yī)學(xué)影像中的應(yīng)用,以及如何進(jìn)行數(shù)據(jù)預(yù)處理、模型構(gòu)建、訓(xùn)練與預(yù)測,提供了詳細(xì)的代碼實(shí)現(xiàn)和單元測試方法,目的是輔助醫(yī)生更準(zhǔn)確快速地進(jìn)行疾病診斷2024-10-10
JDK8的lambda方式List轉(zhuǎn)Map的操作方法
account是一個(gè)返回本身的lambda表達(dá)式,其實(shí)還可以使用Function接口中的一個(gè)默認(rèn)方法代替,使整個(gè)方法更簡潔優(yōu)雅,這篇文章主要介紹了JDK8的lambda方式List轉(zhuǎn)Map,需要的朋友可以參考下2022-07-07

