使用mybatis做条件判断时报错,报错信息如下:
### Error querying database. Cause: java.lang.NumberFormatException: For input string: "Y"
### Cause: java.lang.NumberFormatException: For input string: "Y"
导致报错的相关代码(Mybatis xml配置文件)
<if test="period == 'Y'">
AND DATE_FORMAT( mon.f_startMonth, '%Y-%m' ) < DATE_FORMAT( CURDATE( ), '%Y-%m' )
</if>
if判断是由于’Y’是一个字符,Mybatis认定’Y’是一个char类型,修改代码转化成String 类型的表达形式即可。
解决方法
'Y’使用双引号表达
修改后代码如下:
<if test='period == "Y"'>
AND DATE_FORMAT( mon.f_startMonth, '%Y-%m' ) < DATE_FORMAT( CURDATE( ), '%Y-%m' )
</if>