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

推荐文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。