mybatis中的<foreach>标签在批处理的时候经常要使用到,而使用<foreach>避免不了的就是要对list进行非空判断,否则很容易出错。
今天我在批量插入时,我的代码是这样的
<if test="list!=null and list.size>0>
insert into tables
values
<foreach item="item" separator="," open="(" close=")">
#{item}
</foreach>
</if>
本以为在外面加上判断就可以啦,但是运行时就抛出了这个异常:Query was Empty这个异常,那么这个异常是怎么来的呢,其实就是List为空时,经过<if>标签的判断,从而使的这个<insert>标签里面没有内容,所以就导致了这个异常:Query was Empty。
我总觉得这个东西应该是Mybatis的缺陷,怎么每次都要对这个list进行判断,而且感觉判断起来还很麻烦,希望以后对foreach标签胡支持更好一些,用起来更爽一些。