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中代码:
<if test="dto.insuCode != null and dto.insuCode !='' and dto.insuCode=='Y'">
and t.insu_code IS NOT NULL
</if>
查资料得知,报错原因为:mybatis是用OGNL表达式来解析的,在OGNL的表达式中,'Y’会被解析成字符,java是强类型的,char 和 一个string 会导致不等,所以if标签中的sql不会被解析,需要将’Y’改为"Y",或者加 .toString() 来转换。
所以可以将代码改为如下【注意 " 与 ‘ 的使用】:文章来源:https://www.toymoban.com/news/detail-842425.html
<if test='dto.insuCode != null and dto.insuCode !="" and dto.insuCode=="Y"'>
and t.insu_code IS NULL
</if>
或者将字符转为字符串,改为:文章来源地址https://www.toymoban.com/news/detail-842425.html
<if test="dto.insuCode != null and dto.insuCode !='' and dto.insuCode=='Y'.toString()">
and t.insu_code IS NOT NULL
</if>
到了这里,关于【MyBatis中报错‘Error querying database. Cause: java.lang.NumberFormatException: For input string: “XX】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!