mybatis 传入集合参数遍历 查询总结

出自:http://blog.csdn.net/u013628152/article/details/51184641

1. findByIds(List ids)

如果参数的类型是List, 则在使用时,collection属性要必须指定为 list

<select id="findByIdsMap" resultMap="BaseResultMap">  
 Select  
 <include refid="Base_Column_List" />  
 from jria where ID in  
 <foreach item="item" index="index" collection="list" open="(" separator="," close=")">  
  #{item}  
 </foreach>  
</select>

2:findByIds(Long[] ids)

如果参数的类型是Array,则在使用时,collection属性要必须指定为 array

<select id="findByIdsMap" resultMap="BaseResultMap">  
    select  
    <include refid="Base_Column_List" />  
    from tabs where ID in  
    <foreach item="item" index="index" collection="array" open="(" separator="," close=")">  
     #{item}  
    </foreach>  
</select>

3. findByIds(String name, Long[] ids)

当查询的参数有多个时: 
这种情况需要特别注意,在传参数时,一定要改用Map方式, 这样在collection属性可以指定名称

 Map<String, Object> params = new HashMap<String, Object>(2);
 params.put("name", name);
 params.put("ids", ids);
 mapper.findByIdsMap(params);
<select id="findByIdsMap" resultMap="BaseResultMap">  
     select  
     <include refid="Base_Column_List" />  
     from tabs where 
     name = #{name}
     and ID in  
     <foreach item="item" index="index" collection="ids" open="(" separator="," close=")">  
      #{item}  
     </foreach>  
</select> 

 

 
posted @ 2017-09-17 15:23  路途寻码人  阅读(3268)  评论(0编辑  收藏  举报