关于mybatis mapper.xml中的if判断

场景:

页面上有搜索框进行调节查询,不同搜索框中的内容可以为空。

过程:

点击搜索,前端把参数传给后台,这是后台要把为空的参数过滤掉。

做法:

通常我们在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>

其实很简单,把 ‘’ 空字符串的判断给去掉就行了

猜你喜欢

转载自www.cnblogs.com/bestxyl/p/9151365.html