MyBatis integer 0 判断为空
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis integer 0 判断为空相关的知识,希望对你有一定的参考价值。
参考技术A 问题重现:operateResult=0, 不进入条件, 导致sql更新时operateResult字段明明传值却未更新
operateResult=1, 却进入条件
正常情况下理解为, operateResult 不为null 且 不为空字符串 才会进入.
但这种情况是针对字符串(String)类型,如果是 Integer 类型的话就 会有问题 了
解决方法:
将and item. operateResult!=''"去掉, 只 判 断 item. operateResult!=null
mybatis判断Long,Integer类型的条件是否为空
在使用spring和mybatis时,如果对象的某个属性是整数类型,最好定义其为Long,Integer包装类型,不要使用long,int。因为long,int不传值时,默认为0,这样作为过滤条件会导致查询结果有误。
一般我们在mybatis中判断条件是否为空时写法如下:
<if test="pinyinCode != null and pinyinCode != ''">
AND bs.PINYIN_CODE = #pinyinCode, jdbcType=VARCHAR
</if>
如果是Long,Integer类型时,如果设置其为0,那么在mybatis中 !=‘’是不成立的,因此对于Long,Integer类型做如下判断:
<if test="anesthetist != null">
AND bs.ANESTHETIST = #anesthetist, jdbcType=INTEGER
</if>
以上是关于MyBatis integer 0 判断为空的主要内容,如果未能解决你的问题,请参考以下文章