最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MyBatis?if?test?判斷字符串相等不生效問題

 更新時(shí)間:2022年10月12日 11:15:30   作者:長安明月  
這篇文章主要介紹了MyBatis?if?test?判斷字符串相等不生效問題及解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

MyBatis if test 判斷字符串相等不生效

采用 MyBatis 框架操作 MySQL 數(shù)據(jù)庫時(shí),判斷傳入的字符串 priceFlag 值為"0"時(shí),按照 price 屬性降序排列,如下 xml 語句未生效:

<if test="priceFlag != null and priceFlag == '0'">
? ? ? ORDER BY price DESC
</if>

原因分析

MyBatis 是使用 OGNL 表達(dá)式來進(jìn)行解析的,在 OGNL 表達(dá)式中,'0’會被解析成字符,因?yàn)?java 是強(qiáng)類型的,char 和 String 不等,所以 if 標(biāo)簽中的 SQL 不會被解析。

解決方法

解決這個(gè)問題,可以把 if test 判斷語句修改成如下幾種方式中的任何一種:

<if test='"0" == priceFlag'>

或者

<if test='"0".equals(priceFlag)'>

或者

<if test="'0'.toString() == priceFlag">

修改完成后,SQL 語句就可以被解析了。

MyBatis if test 判斷字符串相等的坑 

自己開發(fā)的系統(tǒng),客戶反映有問題,本著不想改java代碼,想想從數(shù)據(jù)庫入手,加一些判斷條件就想到了if test判斷等于某個(gè)字符串執(zhí)行另一個(gè)sql語句的原則,沒想到想當(dāng)然了,使用 if test=“sex==‘m’”直接報(bào)錯(cuò),看了下網(wǎng)上果然大家都有遇到這樣的問題,解決方式如下:

1. if 判斷字符串

  • 錯(cuò)誤寫法:if test="status == 'Y'"特別是數(shù)字字符的時(shí)候。。。。

結(jié)果:拋異常NumberFormatException異常!提示內(nèi)容非常少,看不出問題在哪里!

  • 正確寫法:if test='status == "y" '

還可以這樣寫:if test="status == 'y'.toString()"

2. if嵌套

? ? ? ? <if test="@com.qbao.tickets.common.util.MybatisUtils@isNotEmpty(firstLetter)">
? ? ? ? ? ? ?<if test="firstLetter=='-1'.toString()">
? ? ? ? ? ? ? ? and FIRST_LETTER is null or FIRST_LETTER =''
? ? ? ? ? ?</if>
? ? ? ? ? ?
? ? ? ? ? ?<if test="firstLetter!='-1'.toString()">
? ? ? ? ? ? ? ?and FIRST_LETTER = #{firstLetter, jdbcType=VARCHAR}
? ? ? ? ? ?</if>
? ? ? ? </if>

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解SpringBoot+Mybatis實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源切換

    詳解SpringBoot+Mybatis實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源切換

    這篇文章主要介紹了詳解SpringBoot+Mybatis實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)源切換,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Spring MVC--攔截器實(shí)現(xiàn)和用戶登陸例子

    Spring MVC--攔截器實(shí)現(xiàn)和用戶登陸例子

    本文主要介紹了Spring MVC--攔截器實(shí)現(xiàn)和用戶登陸例子,具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-03-03
  • Java try-catch-finally異常處理機(jī)制詳解

    Java try-catch-finally異常處理機(jī)制詳解

    這篇文章主要介紹了Java try-catch-finally異常處理機(jī)制詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • SpringBoot異步調(diào)用方法實(shí)現(xiàn)場景代碼實(shí)例

    SpringBoot異步調(diào)用方法實(shí)現(xiàn)場景代碼實(shí)例

    這篇文章主要介紹了SpringBoot異步調(diào)用方法實(shí)現(xiàn)場景代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Spring中@Async注解執(zhí)行異步任務(wù)的方法

    Spring中@Async注解執(zhí)行異步任務(wù)的方法

    在業(yè)務(wù)處理中,有些業(yè)務(wù)使用異步的方式更為合理,這篇文章主要介紹了Spring中@Async注解執(zhí)行異步任務(wù)的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • Java的非對稱加密(RSA、數(shù)字簽名、數(shù)字證書)詳解

    Java的非對稱加密(RSA、數(shù)字簽名、數(shù)字證書)詳解

    這篇文章主要介紹了Java的非對稱加密(RSA、數(shù)字簽名、數(shù)字證書)詳解,非對稱加密:加密、解密使用不同的兩把密鑰,這兩把密鑰成對,一般通信開始時(shí)通過非對稱加密將對稱加密的密鑰發(fā)送給另一方,然后雙方通過對稱加密來進(jìn)行溝通,需要的朋友可以參考下
    2024-01-01
  • Mybatis的核心架構(gòu)及源碼解讀

    Mybatis的核心架構(gòu)及源碼解讀

    這篇文章主要介紹了Mybatis的核心架構(gòu)及源碼解讀,mybatis是一款半自動(dòng)化的持久層框架,它封裝了JDBC操作,支持定制化SQL,高級映射,但它的數(shù)據(jù)庫無關(guān)性較低,需要的朋友可以參考下
    2023-08-08
  • Go Java算法重復(fù)的DNA序列詳解

    Go Java算法重復(fù)的DNA序列詳解

    這篇文章主要為大家介紹了Go Java算法之重復(fù)的DNA序列的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 使用MyBatisPlus自動(dòng)生成代碼后tomcat運(yùn)行報(bào)錯(cuò)的問題及解決方法

    使用MyBatisPlus自動(dòng)生成代碼后tomcat運(yùn)行報(bào)錯(cuò)的問題及解決方法

    這篇文章主要介紹了使用MyBatisPlus自動(dòng)生成代碼后tomcat運(yùn)行報(bào)錯(cuò)的問題及解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Java中的構(gòu)造方法(構(gòu)造函數(shù))與普通方法區(qū)別及說明

    Java中的構(gòu)造方法(構(gòu)造函數(shù))與普通方法區(qū)別及說明

    這篇文章主要介紹了Java中的構(gòu)造方法(構(gòu)造函數(shù))與普通方法區(qū)別及說明,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03

最新評論

兰州市| 屏东县| 逊克县| 通化市| 威信县| 威远县| 福贡县| 吉林省| 黎川县| 瑞丽市| 三穗县| 大竹县| 保山市| 台江县| 三亚市| 南宁市| 龙州县| 东莞市| 安仁县| 岳阳市| 固镇县| 青州市| 望城县| 商河县| 嘉善县| 大埔区| 申扎县| 洛阳市| 离岛区| 噶尔县| 洪江市| 泰来县| 伊宁县| 东安县| 通辽市| 达州市| 阳城县| 麻阳| 阳朔县| 瓦房店市| 延长县|