mybatis中使用in查询时的注意事项
2013-07-24 11:38
423 查看
1.当查询的参数只有一个时
findByIds(List<Long>ids)
1.a如果参数的类型是List,则在使用时,collection属性要必须指定为list
<selectid="findByIdsMap"resultMap="BaseResultMap"> Select <includerefid="Base_Column_List"/> fromjriawhereIDin <foreachitem="item"index="index"collection="list" open="("separator=","close=")"> #{item} </foreach> </select>
findByIds(Long[]ids)
1.b如果参数的类型是Array,则在使用时,collection属性要必须指定为array
<selectid="findByIdsMap"resultMap="BaseResultMap"> select <includerefid="Base_Column_List"/> fromjriawhereIDin <foreachitem="item"index="index"collection="array" open="("separator=","close=")"> #{item} </foreach> </select>
2.当查询的参数有多个时,例如findByIds(Stringname,Long[]ids)
这种情况需要特别注意,在传参数时,一定要改用Map方式,这样在collection属性可以指定名称
下面是一个示例
Map<String,Object>params=newHashMap<String,Object>(2); params.put("name",name); params.put("ids",ids); mapper.findByIdsMap(params); <selectid="findByIdsMap"resultMap="BaseResultMap"> select <includerefid="Base_Column_List"/> fromjriawhereIDin <foreachitem="item"index="index"collection="ids" open="("separator=","close=")"> #{item} </foreach> </select>
完整的示例如下:
例如有一个查询功能,Mapper接口文件定义如下方法:
List<Jria>findByIds(Long...ids);
使用in查询的sql拼装方法如下:
<selectid="findbyIds"resultMap="BaseResultMap">
select
<includerefid="Base_Column_List"/>
fromjriawhereIDin
<foreachitem="item"index="index"collection="array"
open="("separator=","close=")">
#{item}
</foreach>
</select>
相关文章推荐
- mybatis中使用in查询时的注意事项
- mybatis中使用in查询时的注意事项
- mybatis中使用in查询时的注意事项
- mybatis中使用in查询时的注意事项
- mybatis中使用in查询时的注意事项
- mybatis中使用in查询时的注意事项
- mybatis中使用in查询时的注意事项
- mybatis中使用in查询时的注意事项
- mybatis中使用in查询时的注意事项
- mybatis中使用in查询时的注意事项
- mybatis中使用in查询时的注意事项
- 源码解读Mybatis List列表In查询实现的注意事项
- Mybatis List列表In查询实现的注意事项
- mybatis中使用where in查询时的注意事项
- 源码解读Mybatis List列表In查询实现的注意事项
- 源码解读Mybatis List列表In查询实现的注意事项
- 源码解读Mybatis List列表In查询实现的注意事项
- 源码解读Mybatis List列表In查询实现的注意事项
- 源码解读Mybatis List列表In查询实现的注意事项
- Mybatis in 的使用注意事项 及 报错