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即可。
上一篇: 我这个代码为什么提示错误?
下一篇: 答题小程序之调查问卷模板开发