使用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' ) &lt; 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' ) &lt; DATE_FORMAT( CURDATE( ), '%Y-%m' )
</if>
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐