MyBatis中报错‘Error querying database. Cause: java.lang.NumberFormatException: For input string: “XXX”’解决方案
SpringBoot项目中通过MyBatisPlus在mapper中查询数据时报错:【通用异常:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: Error querying database. Cause: java.lang.NumberFormatException: For input string: “Y” Cause: java.lang.NumberFormatException: For input string: “Y”】
mapper中代码:
and t.insu_code IS NOT NULL
查资料得知,报错原因为:mybatis是用OGNL表达式来解析的,在OGNL的表达式中,'Y’会被解析成字符,java是强类型的,char 和 一个string 会导致不等,所以if标签中的sql不会被解析,需要将’Y’改为"Y",或者加 .toString() 来转换。
所以可以将代码改为如下【注意 " 与 ‘ 的使用】:
and t.insu_code IS NULL
或者将字符转为字符串,改为:
and t.insu_code IS NOT NULL
推荐文章
发表评论