如何解决在xml中传入Integer整型参数为0时条件失效问题?
问题描述
在更新语句中加了条件判断,当参数为0时,会出现更新异常的情况!
问题研究
报错信息的sql日志为:update rule_description where version = x and code = 'xxx',发现没有拼接if标签中的sql语句。
原因是当数据类型设置为Integer,传入的值为0时,在mybatis会将其转化为空字符串,从而无法拼接if标签中的sql语句,另外在可视化数据库操作工具中执行查询语句时,当输入的effectStatus=0或者空字符串查询的结果也是相同的!
解决方案
去掉if标签中的and effectStatus != ''条件就可以正常更新了。