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

mybatis if test 不為空字符串且不為null的問題

 更新時(shí)間:2022年03月12日 10:10:06   作者:xinyuezitang  
這篇文章主要介紹了mybatis if test 不為空字符串且不為null的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

if test不為空字符串且不為null

在mybatis中if test 

判斷不為空字串和null的時(shí)候,報(bào)了sql 語法錯(cuò)誤

xml文件:

WHERE enable =1
<if test="keyword != null AND keyword != ''">
        AND ( mac_id = #{keyword} )
        OR ( user_id = #{keyword} )
 </if>

postman工具報(bào)錯(cuò)如下:

在這里插入圖片描述

原因:

if 判斷中, 出現(xiàn)字母大小寫錯(cuò)誤, 不符合mybatis 語法規(guī)范

在這里插入圖片描述

在mybatis中, if test 語法

1 判斷不為null

WHERE 1=1
<if test="keyword != null ">
? ? ? ? AND ?user_id = #{keyword}?
</if>

2 判斷不為空字符串

WHERE 1=1
<if test="keyword != '' ">
? ? ? ? AND ?user_id = #{keyword}?
</if>

3 判斷不為null 且 不為空字符串

WHERE 1=1
<if test="keyword != null and keyword != ''">
? ? ? ? AND ?user_id = #{keyword}?
</if>

Controller層 —> 對(duì)應(yīng)xml 文件

我們在獲取列表時(shí),通常會(huì)根據(jù)關(guān)鍵詞進(jìn)行精確或模糊查詢,就會(huì)對(duì)關(guān)鍵詞進(jìn)行非空或者非null的判斷。如下:

Controller層請求參數(shù)keyword請求參數(shù)默認(rèn)值Dao層Xml 文件
@RequestParam(value = “keyword”, required = false) String keywordnullif test="keyword != null "
@RequestParam(value = “keyword”, required = false, defaultValue = “”) String keyword空字符串if test="keyword != ‘’ "
/不清楚默認(rèn)值都可以if test=“keyword != null and keyword != ‘’”
參數(shù)默認(rèn)值Dao層Xml 文件
從其他渠道的獲取的數(shù)據(jù)或關(guān)鍵詞不清楚默認(rèn)值if test=“keyword != null and keyword != ‘’”

mybatis把0當(dāng)做空字符串

在開發(fā)中,一般在sqlmap中都會(huì)判斷參數(shù)是否為null,以及是否為空字符串

當(dāng)參數(shù)為Int類型 0時(shí),myBatis自動(dòng)把0定義為空字符串“”

我們在可能入?yún)?的地方多加一個(gè)判斷

?<if test="authorizeAmount != null and ''!= authorizeAmount or authorizeAmount==0">
? ? ? ? ? ? ,a.AUTHORIZE_AMOUNT = #{authorizeAmount,jdbcType=VARCHAR}
? ? ? ? </if>

這是一個(gè)比較容易粗心的地方,出問題也不容易排查,記錄下來提醒自己!

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

相關(guān)文章

  • SpringBoot中自定義參數(shù)綁定步驟詳解

    SpringBoot中自定義參數(shù)綁定步驟詳解

    這篇文章主要介紹了SpringBoot中自定義參數(shù)綁定步驟詳解,非常不錯(cuò),具有參考借鑒價(jià)值 ,需要的朋友可以參考下
    2018-02-02
  • MyBatis-Plus 查詢返回實(shí)體對(duì)象還是map

    MyBatis-Plus 查詢返回實(shí)體對(duì)象還是map

    這篇文章主要介紹了MyBatis-Plus 查詢返回實(shí)體對(duì)象還是map,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Springboot actuator應(yīng)用后臺(tái)監(jiān)控實(shí)現(xiàn)

    Springboot actuator應(yīng)用后臺(tái)監(jiān)控實(shí)現(xiàn)

    這篇文章主要介紹了Springboot actuator應(yīng)用后臺(tái)監(jiān)控實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 使用Iterator刪除List中的多個(gè)元素操作

    使用Iterator刪除List中的多個(gè)元素操作

    這篇文章主要介紹了使用Iterator刪除List中的多個(gè)元素操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 再也不用怕! 讓你徹底搞明白Java內(nèi)存分布

    再也不用怕! 讓你徹底搞明白Java內(nèi)存分布

    做Java的大都沒有c++ 的那種分配內(nèi)存的煩惱,因?yàn)镴ava 幫我們管理內(nèi)存,但是這并不代表我們不需要了解Java的內(nèi)存結(jié)構(gòu),因?yàn)榫€上經(jīng)常出現(xiàn)內(nèi)存的問題,今天聊一下內(nèi)存的問題,需要的朋友可以參考下
    2021-06-06
  • 淺談Java 繼承接口同名函數(shù)問題

    淺談Java 繼承接口同名函數(shù)問題

    這篇文章主要介紹了淺談Java 繼承接口同名函數(shù)問題。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • springboot連接Redis的教程詳解

    springboot連接Redis的教程詳解

    這篇文章主要介紹了springboot連接Redis的教程詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Java類之間的關(guān)系圖_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java類之間的關(guān)系圖_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    在Java以及其他的面向?qū)ο笤O(shè)計(jì)模式中,類與類之間主要有6種關(guān)系,他們分別是:依賴、關(guān)聯(lián)、聚合、組合、繼承、實(shí)現(xiàn)。他們的耦合度依次增強(qiáng),有興趣的可以了解一下
    2017-08-08
  • mac系統(tǒng)剛安裝的idea打不開的問題及解決

    mac系統(tǒng)剛安裝的idea打不開的問題及解決

    這篇文章主要介紹了mac系統(tǒng)剛安裝的idea打不開的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Feign Client 超時(shí)時(shí)間配置不生效的解決

    Feign Client 超時(shí)時(shí)間配置不生效的解決

    這篇文章主要介紹了Feign Client 超時(shí)時(shí)間配置不生效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評(píng)論