mybatis判断Long,Integer类型的条件是否为空

Posted 程序员超时空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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判断Long,Integer类型的条件是否为空的主要内容,如果未能解决你的问题,请参考以下文章

mybatis 如何获取返回的条数

查询中mybatis的if判断里传入0

MyBatis传入Integer类型使用if判断时会报错

MyBatis解析<if>动态sql时,Integer类型值为0,返回false

MyBatis中foreach循环的用法

摘录-Mybatis - Integer值为0的数据 return false