Mybatis - if test条件判断,踩坑记录

Posted Zhang Daopin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis - if test条件判断,踩坑记录相关的知识,希望对你有一定的参考价值。

    由于需求的变化,需要在查询的时候增加判断的逻辑,

原来是:

        WHERE type!='CUSTOM'
        <if test="type!='' and type!=null ">
            AND t.type= #{type}
        </if>

需求要求,在类型等于AAA和不等于AAA时,查询的数据

修改为:

        WHERE type!='CUSTOM'
        <if test="type!='' and type!=null and type=='AAA' ">
            AND t.type= #{type}
        </if>
        <if test="type!='' and type!=null and type!='AAA' ">
            AND t.type!= 'AAA'
        </if>

刚开始试了很多方法,例如(and type='AAA')

 发现不管怎样的条件查询,都会查询出类型为AAA的数据,百思不得其解,后来看到这个博客,才灵机一动,将“=”改为“==”就解决了。。。mybatis中if test 可以使用== != null '' and or 和括号()

        <where> type!='CUSTOM'
            <if test="type!='' and type!=null and type='AAA' ">
                AND t.type= #{type}
            </if>
            <if test="type!='' and type!=null and type!='AAA' ">
                AND t.type!= 'AAA'
            </if>
        </where>

以上是关于Mybatis - if test条件判断,踩坑记录的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis - if test条件判断,踩坑记录

Mybatis - if test条件判断,踩坑记录

mybatis的 if test 条件判断字符串单双引号解析问题

vue踩坑记:属性报undefined错误

bat脚本踩坑记

mybatis怎么设置当不满足所有if test的条件则返回空?