<if test="status != null and status != ''">
and isDel=0
</if>
当 private Integer status = 0 时,会有什么问题?
此时判断返回的是false,不会执行if里面的语句
分析如下:
1、status是Integer类型的。status!=' ' 的判断就不合适
2、在Mybatis的源码中,发现其在ExpressionEvaluator.java类的evaluateBoolean方法处返回了false,这个源码包的分析方式和源码分析 There is no getter for property named ‘*’ in ‘class java.lang.String有极大的相同之处。(百度的)
解决方法就是把“and status != ''"去掉就不会有问题了。