關於mybatis傳入0被判斷為空的問題


 

<if test="status!= null  and status!= ''">
  status=#{status},
</if>

在mybatis中這樣寫的話,如果是String類型的話是沒有任何問題的,但是如果是傳入的Integer的話就會出現傳入0被判斷為空的現象,但是也不是必現的,為什么不是必現的也不太清,但是如果變量的值是0,即 status= 0, mybatis在進行 status!= ‘’ 的時候會認為 status的值是空字符串, 即 status== ‘’ 為true。所以如果是Integer類型只需要判斷 != null 即可。

如:

<if test="status!= null>
  status=#{status},
</if>

  

 

 

 

 注意,以上調整可能會引起另外一個細節問題----------------

1、上面的調整去掉了status!= ''的判斷,如果前端沒有status的查詢條件但傳入了status= ''的參數,在mybatis會把status=0進行查詢。

 

<if test="status!= null  and status!= ''">
  status=#{status},
</if>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM