您的位置:首页 > 其它

mybatis中使用in查询时的注意事项

2017-03-27 00:00 585 查看
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查询