1. 程式人生 > >工作中碰到的問題,關於Integer傳值0的問題

工作中碰到的問題,關於Integer傳值0的問題

業務場景: 性別的資料型別是 Integer  , 0 代表男 1代表女 ,當由女修改成男的時候 修改不成功, 由男修改成女 則成功 debug 分析: 男的value值是  0 的確 能傳到controller 解決方法:

1、將 男 value 用 2 來代替 (不推薦,笨方法 ) 2、將Integer  型別 修改成int 型別 解決問題 (不推薦) 3、刪除多餘條件 (推薦)  

 原因分析:

如果你是這樣寫的

<if test="userSex != '' and userSex != null ">

由此可見,當物件是一個Number型別,值為0時將被解析為false

,否則為true,浮點型0.00也是。

那麼,你傳的值是0  那麼Mybatis會把你的值 解析成" " 空字串,

其實,問題的根源是不嚴謹造成的,只有String型別才需要判斷是否!='',其他型別完全沒有這個必要。