mybatis.xml中foreach的用法

  • Post author:
  • Post category:其他


用法一:

mybatis.xml中一个字段要匹配多个值用法:

select * from T_USER t
where t.ID in
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
     #{item}
</foreach>

list是参数的名称,集合、数组都可以用。

若list中参数个数较多,Oracle中,关键字in的后面参数最多为1000个参数,所以上述语句可改成下面的:

select * from T_USER t
where 
<foreach item="item" index="index" collection="list" separator="or">
    t.ID =  #{item}
</foreach>

用法二:

mapper中方法:

List<User> select(@Param("type") String[] type);
select
    ID
    from T_USER t
    where 1 = 1
    and
    <foreach collection="type" item="item" index="index" separator=" or "> (type为mapper中方法的参数对应名称)
      SITE_TYPE like '%${item}%'
     </foreach>

“or”或“and”根据自己的逻辑使用。