业务场景:
性别的数据类型是 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类型才需要判断是否!=''
,其他类型完全没有这个必要。