mybatis中使用Integer类型的参数<if>判断问题
mybatis对传入参数进行判断时,会使用if标签, 一般是判断不为null和'', 如下:
<if test="name != null and 那么 != ''">
name =#{name,jdbcType=VARCHAR},
</if>
1、 String类型是符合的,但是如果是Integer类型的话,如果变量的值是0,即 num = 0, mybatis在进行 num != '' 的时候会认为 num 的值是空字符串, 即 num == '' 为true。
所以如果是Integer类型只需要判断 != null 即可
2、如果String类型需要判断不等于0,则需要写name != '0'.toString(),否则会报错。