2022-01-04

mybatis異常提示For input string:{1=null}
報(bào)錯(cuò)情況:

<where>
    <if test='#{judge} != null  and #{judge}==1'>
     create_time>='2021-01-09 00:00:00' and create_time &lt;='2021-01-30 23:59:59'</if>    
     <if test='#{judge}!= null  and #{judge}==2'>
     create_time>='2021-02-09 00:00:00' and create_time &lt;='2021-02-30 23:59:59'</if>
    </where>

解決辦法:

<where>
    <if test='judge != null  and judge==1'>
    create_time>='2021-01-09 00:00:00' and create_time &lt;='2021-01-30 23:59:59'
    </if>   
      <if test='judge!= null  and judge==2'>
      create_time>='2021-02-09 00:00:00' and create_time &lt;='2021-02-30 23:59:59'
      </if>
      </where>

原因:
Mybatis中的 #KaTeX parse error: Expected 'EOF', got '#' at position 8: 的區(qū)別和作用 #?相當(dāng)于對(duì)數(shù)據(jù) 加上 雙引號(hào),則是事什么就顯示什么

例如:id = #{id},如果傳入的值是99,那么解析成sql時(shí)的值為 id =“99”
例如:id = ${id},如果傳入的值是99,那么解析成sql時(shí)的值為d = 99

本質(zhì)上的區(qū)別:
將傳入的數(shù)據(jù)都當(dāng)成一個(gè)字符串,會(huì)對(duì)自動(dòng)傳入的數(shù)據(jù)加一個(gè)雙引號(hào)。#
方式能夠很大程度防止sql注入#
方式一般用于傳入數(shù)據(jù)庫對(duì)象,例如傳入表名傳入的數(shù)據(jù)直接顯示生成在sql中。
排序時(shí)使用order by 動(dòng)態(tài)參數(shù)使用$

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容