解决Mybatis 无法更新数字0到数据库

       今天遇到 一个问题,用户购买的使用次数在从1减到0的时候,无法将0这个数字更新到数据库表中,这就相当于如果用户购买1次或曾经购买过使用到最后1次等价于无限次。所以看似很小的一个bug却有可能导致巨大损失。

        废话少说上图:

 解决Mybatis 无法更新数字0到数据库

       Debug发现是走了更新接口的:

解决Mybatis 无法更新数字0到数据库

接下来看数据库的表现:

解决Mybatis 无法更新数字0到数据库

根源在这里:

解决Mybatis 无法更新数字0到数据库

总结:做数字字段更新的时候不要使用 and number!=0或者and number!=''。否则将会被mybatis拦截。这种情况大部分是因为疏忽导致的。所以写代码的时候要心细。