MyBatis Mapper xml if 中判断字符串相等的一小坑

2021-01-07  

在 MyBatis 的 Mapper xml 里写了一个 if 判断

<if test="type == 'D'">
    and type is not null
</if>

结果解析的时候报错,NumberFormatException。大致意思就是会把 type 的参数值转换为数字类型与 'D' 比较。

在 Java 中 'D'  是一个字符类型,属于基本类型,可以进行整数比较。

 

解决办法,将单双引号对调,'D' 改成 "D",test= 后面跟单引号

<if test='type == "D"'>

 

也可以 'D'.toString(),但多一次转换,不建议。

 

ConstXiong 备案号:苏ICP备16009629号-3