经过大佬的指点,后来求证在网上搜索一番,果然是存在这样一个问题:
当传入为0的时候,会被识别成“ ”,空字符串,根据mapper文件里的代码来看,自然就不会进入判断的sql,所以就是全查询了。
经过大佬的指点,后来求证在网上搜索一番,果然是存在这样一个问题:
当传入为0的时候,会被识别成“ ”,空字符串,根据mapper文件里的代码来看,自然就不会进入判断的sql,所以就是全查询了。
但是有没有什么办法解决呢?答案还是有滴:
总结一下问题:Interger类型的数据,当为0的时候传到后台,会被识别成" "(空字符串)处理。
<if test="roleOrder != null and roleOrder != ''">
and t.roleOrder = #{roleOrder}
</if>
改成
<if test="roleOrder != null ">
and t.role_order = #{roleOrder}
</if>