Mybatis 传输List的实现代码

时间:2021-07-08 05:56:00

1. 当查询的参数只有一个时

?
1
findByIds(List<Long> ids)

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

Xml代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<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>
<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>
 findByIds(Long[] ids)

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

Xml代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<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>
<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>

2. 当查询的参数有多个时,例如 findByIds(String name, Long[] ids)

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

         下面是一个示例     

?
1
2
3
4
Map<String, Object> params = new HashMap<String, Object>(2);
     params.put("name", name);
     params.put("ids", ids);
    mapper.findByIdsMap(params);

Xml代码

?
1
2
3
4
5
6
7
8
<select id="findByIdsMap" resultMap="BaseResultMap">
 select
 <include refid="Base_Column_List" />
 from tabs where ID in
 <foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
 #{item}
 </foreach>
</select>

总结

以上所述是小编给大家介绍的Mybtis 传输List的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

原文链接:http://blog.csdn.net/starkpan/article/details/77870448