开发中遇到的问题---【当类型设置为Integer时,传入的值为0,会将其转化为空字符串,从而造成查询数据异常】
问题:今天在写一个普通的查询,条件查询状态为0时,查询总是异常,debug获取的参数都没问题,但查询后的结果是查询所有的数据
sql日志:select * from mobile_info WHERE LIMIT ?
原因:当数据类型设置为Integer,传入的值为0时,在mybatis会将其转化为空字符串,从而无法进入if标签中进行查询。在数据库可视化工具中,当输入的batchStatus=0或者空字符串查询的结果是相同的。 当去掉mapper中的sql语句
and ispType != ''
时,就可以查询了(即使在初始化查询的时候,也不受影响,因为初始加载页面各个条件默认为null)
愿你走出半生,归来仍是少年!