亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

原因分析

MyBatis 是使用 OGNL 表達式來進行解析的,在 OGNL 表達式中,'0’會被解析成字符,因為 java 是強類型的,char 和 String 不等,所以 if 標簽中的 SQL 不會被解析。

解決方法

解決這個問題,可以把 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判斷等于某個字符串執(zhí)行另一個sql語句的原則,沒想到想當然了,使用 if test=“sex==‘m’”直接報錯,看了下網上果然大家都有遇到這樣的問題,解決方式如下:

1. if 判斷字符串

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

結果:拋異常NumberFormatException異常!提示內容非常少,看不出問題在哪里!

  • 正確寫法: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>

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

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

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

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

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

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

    Java try-catch-finally異常處理機制詳解

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

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

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

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

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

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

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

    Mybatis的核心架構及源碼解讀

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

    Go Java算法重復的DNA序列詳解

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

    使用MyBatisPlus自動生成代碼后tomcat運行報錯的問題及解決方法

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

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

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

最新評論