关于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>

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

 

posted @ 2018-06-07 16:29  众星捧月  阅读(18785)  评论(0编辑  收藏  举报