欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mybatis Integer类型,值为0被认为是空字符串的解决办法

程序员文章站 2022-05-18 21:33:53
...

Mybatis中进行查询或者插入等操作的时候,我们一般会对数据进行非空校验。例:

<if test="payerId != null and payerId != '' ">
      AND payer_id = #{payerId}
</if>
<if test="payeeId != null and payeeId != '' ">
      AND payee_id = #{payeeId}
</if>

 

如果不为空并且不是null才去修改这个值,但这样写只能针对字符串(String)类型,如果是Integer类型的话就会有问题了。例:

int parentId  = 0;
<if test="parentId != null and parentId != '' ">
      AND parent_id = #{parentId}
</if>
如上伪代码, AND parent_id = #{parentId}  将不会执行,也就是说mybatis将 parentId的值默认为
空字符串。

 所以,针对这个问题,我的解决办法是:如果类型为Integer类型,我就去掉 != ”的判断,只判断!=null即可。