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

MyBatis參數(shù)條件查詢傳入的值為0時(shí)的判斷問(wèn)題及解決

 更新時(shí)間:2026年06月16日 10:42:44   作者:IT大師  
MyBatis參數(shù)條件查詢解析,條件為空判斷處理;當(dāng)傳入?yún)?shù)為Integer類(lèi)型且值為0時(shí),MyBatis會(huì)將其轉(zhuǎn)為空串;解析過(guò)程涉及sqlNode處理與OgnlOps類(lèi)的double值轉(zhuǎn)換,幫助開(kāi)發(fā)提供參考

MyBatis參數(shù)條件查詢傳入的值為0判斷

MyBatis條件查詢對(duì)字段判斷是否為空一般為:

<if test="testValue!=null and testValue != ''">
    and test_value = #{testValue}
</if>

如果傳入?yún)?shù)為Integer類(lèi)型且值為0時(shí),會(huì)把0轉(zhuǎn)為空串

源碼真實(shí)情況

MyBatis解析的所有sqlNode節(jié)點(diǎn),針對(duì)if節(jié)點(diǎn)會(huì)交給IfSqlNode來(lái)處理,進(jìn)過(guò)層層處理,最終都會(huì)調(diào)用OgnlOps.class類(lèi)的doubleValue(Object value)方法

public static double doubleValue(Object value) throws NumberFormatException {
    if (value == null) {
        return 0.0D;
    } else {
        Class c = value.getClass();
        if (c.getSuperclass() == Number.class) {
            return ((Number)value).doubleValue();
        } else if (c == Boolean.class) {
            return ((Boolean)value).booleanValue() ? 1.0D : 0.0D;
        } else if (c == Character.class) {
            return (double)((Character)value).charValue();
        } else {
            String s = stringValue(value, true);
            return s.length() == 0 ? 0.0D : Double.parseDouble(s);
        }
    }
}

0和""都調(diào)用該方法返回的double值都為0.0,在進(jìn)行比較。

處理方法

<if test="testValue!=null and testValue!='' or 0 == testValue">
    and test_value = #{testValue}
</if>
或者
<if test="testValue!=null">
    and test_value = #{testValue}
</if>

總結(jié)

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

相關(guān)文章

  • Java實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)MNIST手寫(xiě)數(shù)字識(shí)別的示例詳解

    Java實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)MNIST手寫(xiě)數(shù)字識(shí)別的示例詳解

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)MNIST手寫(xiě)數(shù)字識(shí)別的相關(guān)方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-01-01
  • 通過(guò)Maven進(jìn)行jedis連接redis的實(shí)現(xiàn)

    通過(guò)Maven進(jìn)行jedis連接redis的實(shí)現(xiàn)

    這篇文章主要介紹了通過(guò)Maven進(jìn)行jedis連接redis的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • 詳解Java的初始化與清理

    詳解Java的初始化與清理

    這篇文章主要介紹了Java的初始化與清理,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • SpringBoot AOP導(dǎo)致service注入后是null的問(wèn)題

    SpringBoot AOP導(dǎo)致service注入后是null的問(wèn)題

    本文主要講述了如何利用SpringAOP實(shí)現(xiàn)用戶操作日志的記錄,首先,引入SpringBoot的AOP依賴,然后,選擇基于注解的形式來(lái)實(shí)現(xiàn)日志操作,以避免污染原有代碼和邏輯,在理解了SpringBootAOP的一些注解后,需要記錄用戶的正常請(qǐng)求以及異常請(qǐng)求的信息
    2024-10-10
  • spring?boot項(xiàng)目自定義參數(shù)校驗(yàn)規(guī)則示例詳解

    spring?boot項(xiàng)目自定義參數(shù)校驗(yàn)規(guī)則示例詳解

    這篇文章主要介紹了spring boot項(xiàng)目如何自定義參數(shù)校驗(yàn)規(guī)則,自定義校驗(yàn)規(guī)則和自帶的規(guī)則實(shí)現(xiàn)方式一樣,先自定義一個(gè)注解,然后指定校驗(yàn)類(lèi),在校驗(yàn)類(lèi)里實(shí)現(xiàn)具體的校驗(yàn)規(guī)則,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • SpringBoot使用SpringDoc+OpenAPI3.0實(shí)現(xiàn)接口文檔自動(dòng)生成

    SpringBoot使用SpringDoc+OpenAPI3.0實(shí)現(xiàn)接口文檔自動(dòng)生成

    本文介紹了在前后端分離項(xiàng)目中使用SpringDoc實(shí)現(xiàn)接口文檔自動(dòng)生成的方法,包括核心依賴、啟動(dòng)配置、常用注解、生產(chǎn)環(huán)境配置、帶Token權(quán)限接口調(diào)試等內(nèi)容,提高了接口文檔的生成效率和維護(hù)性,需要的朋友可以參考下
    2026-03-03
  • 使用Java實(shí)現(xiàn)一個(gè)簡(jiǎn)單的定時(shí)器

    使用Java實(shí)現(xiàn)一個(gè)簡(jiǎn)單的定時(shí)器

    這篇文章主要為大家詳細(xì)介紹了如何使用Java實(shí)現(xiàn)一個(gè)簡(jiǎn)單的延時(shí)/定時(shí)器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • Java錯(cuò)誤:進(jìn)行語(yǔ)法分析時(shí)已到達(dá)文件結(jié)尾的解決

    Java錯(cuò)誤:進(jìn)行語(yǔ)法分析時(shí)已到達(dá)文件結(jié)尾的解決

    這篇文章主要介紹了Java錯(cuò)誤:進(jìn)行語(yǔ)法分析時(shí)已到達(dá)文件結(jié)尾的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Java中Arrays數(shù)組工具類(lèi)的基本使用詳解

    Java中Arrays數(shù)組工具類(lèi)的基本使用詳解

    Arrays類(lèi)中的方法都是static修飾的靜態(tài)方法,在使用的時(shí)候可以直接使用類(lèi)名進(jìn)行調(diào)用,而"不用"使用對(duì)象來(lái)調(diào)用(注意:是"不用"?而不是?"不能"),這篇文章主要給大家介紹了關(guān)于Java中Arrays數(shù)組工具類(lèi)的基本使用,需要的朋友可以參考下
    2021-12-12
  • java制作帶界面的聊天工具

    java制作帶界面的聊天工具

    這篇文章主要教大家如何利用java制作帶界面的聊天工具,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07

最新評(píng)論

凯里市| 鞍山市| 大连市| 柞水县| 高淳县| 东乌珠穆沁旗| 阿城市| 汨罗市| 汨罗市| 临猗县| 屏东市| 江口县| 延寿县| 浠水县| 肃宁县| 广南县| 涞源县| 白玉县| 阜康市| 松滋市| 玛沁县| 桂平市| 嫩江县| 南平市| 无棣县| 通州区| 仙居县| 江陵县| 嵊州市| 南安市| 津南区| 哈巴河县| 浦北县| 韶山市| 永州市| 浪卡子县| 卓资县| 上饶县| 绥化市| 米林县| 广昌县|