Mybatis系列:针对foreach标签内传入list为空的解决方案

1、对list判null和判空来处理

使用mybatis进行in()判断的时候传入参数为List,这时候如果list有内容还好,如果List为空的话只用foreach会报错,那么就要判断List是否为空了,当然可以在java代码中进行判断,但是我不想每次调用该方法都要进行判断,所有最好还是在mybatis的sql配置文件中判断,配置如下:

<if test="list != null and list.size() > 0">
  _claimreview.id in
  <foreach collection="list" index="index" item="item"  open="(" separator="," close=")">  
    #{item}
  </foreach>
</if>

2、对list判null和判空来处理(推荐)

<foreach collection="list" index="index" item="item" open="AND _claimreview.id IN (" separator="," close=")">
    #{item}
</foreach>

这种方法在传入的collection值为空时,不会生成open内的sql语句,比较简洁

你可能感兴趣的:(Mybatis系列:针对foreach标签内传入list为空的解决方案)