欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mybatis if傳入字符串?dāng)?shù)字踩坑記錄及解決

 更新時間:2023年02月07日 09:36:09   作者:搬運Gong  
這篇文章主要介紹了mybatis if傳入字符串?dāng)?shù)字踩坑記錄及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

mybatis if傳入字符串?dāng)?shù)字踩坑

前臺頁面內(nèi)容,注意這里的類型為字符串類型的數(shù)字

<li>
?? ?<label>支付類型:</label>
?? ?<form:select path="payType" class="input-medium">
?? ??? ?<form:option value="">全部</form:option>
?? ??? ?<form:option value="1">線上支付</form:option>
?? ??? ?<form:option value="3">線下支付</form:option>
?? ?</form:select>
</li>

后臺 MVC 接收參數(shù):

Class RefundLog {
?? ?....
?? ?/**
?? ? * 支付類型 1:線上支付服務(wù),3:線下支付服務(wù)
?? ? */
?? ?private String payType;

?? ?.....
}

public String refundOrderList(RefundLog refundLog, HttpServletRequest request, HttpServletResponse response, Model model) {
?? ?.....
}

此時 mybatis 中使用常規(guī)的字符串判斷,不會進(jìn)入條件,如下,錯誤的寫法:

<if test="payType == '1'">
?? ?AND rl.pay_type in ('1','ZFBA','WEIX')
</if>

經(jīng)過調(diào)試發(fā)現(xiàn),SQL 未進(jìn)入判斷?。?!

正確的寫法如下

將字符串?dāng)?shù)字toString 一下?。。?!

<if test="payType == '1'.toString()">
?? ?AND rl.pay_type in ('1','ZFBA','WEIX')
</if>

搞定?。?/p>

mybatis if比較字符串相等問題

在mybatis中,使用<if test="flag=='1'">

flag為string類型傳入,其值也是“1”,但是這個等式的返回結(jié)果是false

最后發(fā)現(xiàn)mybatis將'1'解析為char類型,所有不相等

可將<if test="flag=='1'">改為<if test='flag=="1"'>或者<if test="flag==1">

這個誤區(qū)在使用mybatis好多年都沒有發(fā)現(xiàn),所以盡量不要使用單字符的String字符串來進(jìn)行比較

mybatis是用OGNL表達(dá)式來解析的,在OGNL的表達(dá)式中,單引號里單個字符會被解析成char類型(多個字符是可以的),java是強(qiáng)類型的,char 和一個string 會導(dǎo)致不等

總結(jié)

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

相關(guān)文章

  • SpringBoot整合Redis使用@Cacheable和RedisTemplate

    SpringBoot整合Redis使用@Cacheable和RedisTemplate

    本文主要介紹了SpringBoot整合Redis使用@Cacheable和RedisTemplate,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Spring Data JPA 之 JpaRepository的使用

    Spring Data JPA 之 JpaRepository的使用

    這篇文章主要介紹了Spring Data JPA 之 JpaRepository的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • springboot如何開啟一個監(jiān)聽線程執(zhí)行任務(wù)

    springboot如何開啟一個監(jiān)聽線程執(zhí)行任務(wù)

    這篇文章主要介紹了springboot如何開啟一個監(jiān)聽線程執(zhí)行任務(wù)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • JAXB命名空間及前綴_動力節(jié)點Java學(xué)院整理

    JAXB命名空間及前綴_動力節(jié)點Java學(xué)院整理

    這篇文章主要給大家介紹了關(guān)于JAXB命名空間及前綴的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08
  • mybatis-plus之如何根據(jù)數(shù)據(jù)庫主鍵定義字段類型

    mybatis-plus之如何根據(jù)數(shù)據(jù)庫主鍵定義字段類型

    這篇文章主要介紹了mybatis-plus之如何根據(jù)數(shù)據(jù)庫主鍵定義字段類型問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java向List集合中批量添加元素的實現(xiàn)方法

    Java向List集合中批量添加元素的實現(xiàn)方法

    這篇文章主要介紹了Java向List集合中批量添加元素的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • SpringBoot框架整合SwaggerUI的示例代碼

    SpringBoot框架整合SwaggerUI的示例代碼

    項目中使用了很多現(xiàn)成的框架,都是項目經(jīng)理、架構(gòu)師帶來的,從來沒有自己整合過,今天給大家介紹下SpringBoot框架整合SwaggerUI的過程,感興趣的朋友跟隨小編一起看看吧
    2022-02-02
  • SpringBoot整合Mybatis與thymleft實現(xiàn)增刪改查功能詳解

    SpringBoot整合Mybatis與thymleft實現(xiàn)增刪改查功能詳解

    MybatisPlus是國產(chǎn)的第三方插件,?它封裝了許多常用的CURDapi,免去了我們寫mapper.xml的重復(fù)勞動。本文將整合MybatisPlus實現(xiàn)增刪改查功能,感興趣的可以了解一下
    2022-12-12
  • 全面解釋java中StringBuilder、StringBuffer、String類之間的關(guān)系

    全面解釋java中StringBuilder、StringBuffer、String類之間的關(guān)系

    String的值是不可變的,這就導(dǎo)致每次對String的操作都會生成新的String對象,不僅效率低下,而且大量浪費有限的內(nèi)存空間,StringBuffer是可變類,和線程安全的字符串操作類,任何對它指向的字符串的操作都不會產(chǎn)生新的對象,StringBuffer和StringBuilder類功能基本相似
    2013-01-01
  • Spring中配置Transaction與不配置的區(qū)別及說明

    Spring中配置Transaction與不配置的區(qū)別及說明

    這篇文章主要介紹了Spring中配置Transaction與不配置的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評論