当前位置: 代码迷 >> Web前端 >> 遍历寄放Map的List集合
  详细解决方案

遍历寄放Map的List集合

热度:154   发布时间:2012-11-25 11:44:31.0
遍历存放Map的List集合
周五下午在做数据库移植时,遇到一个问题.原来Oracle语句用到一个wm_concat()函数返回字符串"0123",我在转变成mysql语句的时候
select wm_concat(usertype) as usertype
    from ( select usertype from tbUserPurview where userid=1 group by usertype);
我想用这个函数GROUP_CONCAT()代替wm_concat()可是没有成功。sql返回的结果集,虽然也是0123。但用Map中的key对应的value值确实一个内存地址。
Map map = baseDAO.getJdbcTemplate().queryForMap(sql);
select GROUP_CONCAT(fromChildTab.usertype) as usertype
    from ( select usertype from tbUserPurview where userid =1 group by usertype) as fromChildTab;

----------------------------
所以我迫不得已 只好用一个简单的sql语句,结果集有3条记录,原来用GROUP_CONCAT()函数,只有一条记录。这回返回一个List集合,里边放的是Map。所以要遍历这个list,然后再拼接字符串、
List list = baseDAO.getJdbcTemplate().queryForList(sql);
[{sertype=0}, {usertype=1}, {usertype=2}, {usertype=3}]

List list = baseDAO.getJdbcTemplate().queryForList(sql);
    String str1 ="";//String str2="";
        for(Iterator iter = list.iterator();iter.hasNext();){

    Map map =(Map)iter.next();
    Set keySet = map.keySet();
   Iterator it = keySet.iterator();
    while(it.hasNext()){
    String usertype =(String)it.next();
    Object usertype_value =map.get(usertype);//通过键获取值
    String str2 = usertype_value.toString();
    str1 = str1+str2;
    }
}
  相关解决方案