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

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即可。

猜你喜欢

转载自xiaochuang.iteye.com/blog/2389104
今日推荐