MyBatis map foreach

以下材质来源网络,仅供参考学习。

 

mybatis 遍历map实例

map 数据如下 Map<String,List<Long>>.

MyBatis, 

测试代码如下:

 1 public void getByMap() {
 2         Map<String,List<Long>> params=new HashMap<String, List<Long>>();
 3         List<Long> orgList=new ArrayList<Long>();
 4         orgList.add(10000003840076L);
 5         orgList.add(10000003840080L);
 6        
 7         List<Long> roleList=new ArrayList<Long>();
 8        
 9         roleList.add(10000000050086L);
10         roleList.add(10000012180016L);
11        
12         params.put("org", orgList);
13         params.put("role", roleList);
14        
15         List<BpmDefUser> list= bpmDefUserDao.getByMap(params);
16         System.out.println(list.size());
17        
18 }

 

dao代码如下:

1 public List<BpmDefUser> getByMap(Map<String,List<Long>> map) {
2         Map<String,Object> params=new HashMap<String, Object>();
3         params.put("relationMap", map);
4         return this.getBySqlKey("getByMap", params);
5        
6 }

 

xml代码如下:

 

 1 <select id="getByMap" resultMap="BpmDefUser">
 2        
 3             <foreach collection="relationMap" index="key"  item="ent" separator="union">
 4                 SELECT *
 5                 FROM BPM_DEF_USER
 6                 WHERE RIGHT_TYPE=#{key}
 7                 AND OWNER_ID in 
 8                 <foreach collection="ent"  item="id" separator="," open="(" close=")">
 9                     #{id}
10                 </foreach>
11             </foreach>
12        
13 </select>

 

index 作为map
的key。item为map的值,那里运用了嵌套循环,嵌套循环使用ent。

 

 

网站地图xml地图