Mybatis用<if>标签判断Integer类型的坑

之前只知道如果是Integer类型,判断是否传参的时候判空就好,因为0会被认为和空字符''相等。

没想到还有另外的问题

<if test="req.type != null and req.type = 1">

</if>

注意上面的第二个条件使用的单个等号,此时不管你req.type传啥值(0啊,null啊,负数啊),甚至是不传这个属性,都会符合条件

<if test="req.type != null and req.type == 1">
               
</if>

然后我改成==之后,一切恢复正常。

原理暂时不明,先做记录,有知道的大佬希望能不吝赐教。



原文地址:https://www.cnblogs.com/zou-rong/p/15131186.html