今天在交通费计算交易中,需要查询全部base地的交通费,需要返回map集合。然后经查资料,实现过程如下:
1.Mapper中SQL:
select base,traffic_fare from T_EAD_TRAFFICBASE
2.DAO中的成员方法:
public List> getBaseMap();
3.对返回List的处理:
private Map getBaseMap(Logger logger) {
Map baseMap = new HashMap();
List> baseList = eadTrafficBaseMapper.getBaseMap();
for (Map map:baseList //遍历list
) {
String base = null;
BigDecimal fare = null;
for (Map.Entry entry:map.entrySet() //遍历map的key集合 获取对应key的value
) {
if ("base".equals(entry.getKey())) {
base = String.valueOf(entry.getValue());
}else if ("traffic_fare".equals(entry.getKey())) {
fare = new BigDecimal(String.valueOf(entry.getValue()));
}
baseMap.put(base,fare);
}
}
return baseMap;
}
注意:在返回的list结果中,list.get(0) 获取的只是查询结果的一条数据的map,并不是全部数据的map。SQL查询的结果中,每一条查询结果都是一个map,然后把所有map放在list中。map的形式是{"code1":"value1","code2":"value2","code3":"value3"...},所以需要对list遍历,再遍历map,分别获取对应table的字段值,放入到一个新的map集合 返回,大家可以打印一下查询结果,就一目了然了。