场景:
页面上有搜索框进行调接口查询,不同搜索框中的内容可以为空。
过程:
点击搜索,前端把参数传给后台,这是后台要把为空的参数过滤掉。
做法:
通常我们在dao层即mapper.xml中进行过滤判断操作,如下
<if test="name != null and name != ''"> and name = #{name} </if>
这时当name为空时,就会把name这个字段忽略掉,从而达到字段过滤作用。
问题:
当我们传的参数为整型时,即Integer或者int时,这个判断将不起作用,因为mybatis会把为整型的参数当做空字符串判断,直接跳过,根本传不进来。
解决:
<if test="name != null"> and name = #{name}
</if>
其实很简单,把 ``空字符串的判断给去掉就行了