mybatis判断集合长度

Posted q1359720840

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis判断集合长度相关的知识,希望对你有一定的参考价值。

使用mybatis框架在写sql的时候碰到一个异常:

 1064 - You have an error in your SQL syntax; check the manual that corresponds to your mysql server version for the right syntax to use near ‘)‘ at line 1

  类似于sql这样出现的异常

SELECT * FROM eval_question  WHERE   id not in()

  后来就查询前先判断前台传入集合如果长度小于0就不走下面的操作。就不会异常了。

 <select id="NotInByEvalQuestion" resultType="com.rm.eval.entity.EvalQnQuestion">
        SELECT * FROM eval_question  WHERE  1=1
        <if test="null != strlist and strlist.size > 0">
          and  id not in
            <foreach collection="strlist" index="index" item="item" open="(" separator="," close=")">
                #{item}
            </foreach>
        </if>
    </select>

  相当于

SELECT * FROM eval_question  WHERE   id not in("")或者
SELECT * FROM eval_question  WHERE  1=1

 

以上是关于mybatis判断集合长度的主要内容,如果未能解决你的问题,请参考以下文章

Mybatis 中判断参数长度

MYBATIS05_ifwherechoosewhentrimsetforEach标签sql片段

Mybatis if test 判断 list不为 null 并且判断集合大小不为0

mybatis学习日志二

mybatis 查询一对多 集合中没有值为啥

mybatis中判断foreach循环最后一个