转载

mybatis sql in 用法

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>  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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>  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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);
  • 1
  • 2
  • 3
  • 4
  • 5

<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>  
正文到此结束
Loading...