<if test="status!= null and status!= ''">
status=#{status},
</if>
如上面代码所示,在这段代码中传入0,如果传入的0是String类型的话是不会有问题的。
但是如果传入的0是Integer类型的,Integer的0会被mybatis认为是空的字符,就会被判断为0='',即status=''为true
所以在编写代码的时候如果使用的是Integer类型的值,应当去掉后的status != ' ',如下:
<if test="status!= null>
status=#{status},
</if>
但是需要注意的是,上面的调整去掉了status!= ''的判断,如果前端没有status的查询条件但传入了status= ''的参数,在mybatis会把status=0进行查询。