Mybatis中SQL写的如下
<if test="type != null and type !=''">
and w.type = #{type}
</if>
type定义
private Integer type;//类别
前台添加类别搜索,类别value分别以0、1、2来进行分类,问题出现了,当选择value为0的时候搜索的结果为全部,而搜索其它的则没有相应的问题。
知道了问题,咱就要找出问题的原因,打断点,后台跟踪,发现对象接收到了type=0的数据。
既然数据没有问题,然后看打印的SQL,没有发现 type=0,那问题就是出在sql了
尝试把以上代码修改成
<if test="type != null">
and w.type = #{type}
</if>
然后再执行,解决。原来mybatis默认把Integer类型的0值 == ‘’。