mybatis foreach之前对list进行判空

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011390452/article/details/50986748

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

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

刚开始以为collection=“list”的名称“list”是随便起到,后来发现不是,如果该方法的传入参数单单只是一个List,那么名称list应该就是参数的默认名称,当然了,如果在方法的参数上配置了@Param(value="xxx")注解,那么该名称也应该是“xxx”,所以可以在<if>判断以及<foreach>中对其进行操作;当然如果把List放到Map中,那么该List的Key值即为collection的参数名。

猜你喜欢

转载自blog.csdn.net/u011390452/article/details/50986748