在做SSM项目时发现一个有趣的bug,在这里记录一下. 数据库表如下: 实体类:grade字段初始设定为int类型 在用mybatis对第三条数据进行修改时,希望赋值的更改,未赋值的不更改,测试运行 修改后发现数据库中的grade字段变成了0,这不是我想要的,(按照正常需求应该是原来的数字5) 查看了一下日志,发现了猫腻: int 类型,在默认情况下不赋值为0,执行到mybatis的更新语句时,被当做数字0,而非null, 仔细想想Integer和int 的区别,integer的默认值为null…