MyBatis查询返回Map类型数据

本文介绍如何使用MyBatis进行交通费计算交易中base地的交通费查询,并返回map集合。具体包括Mapper中的SQL定义、DAO成员方法实现及返回List<Map>的处理过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在交通费计算交易中,需要查询全部base地的交通费,需要返回map集合。然后经查资料,实现过程如下:

1.Mapper中SQL:

 

<!--查询返回base地的map集合-->
<select  id="getBaseMap" resultType="java.util.HashMap">
    select base,traffic_fare from T_EAD_TRAFFICBASE
</select>

 

2.DAO中的成员方法:

 

public List<Map<String, Object>> getBaseMap();

 

3.对返回List<map>的处理:

 

private Map<String,BigDecimal> getBaseMap(Logger logger) {
    Map<String, BigDecimal> baseMap = new HashMap<String, BigDecimal>();
    List<Map<String, Object>> baseList = eadTrafficBaseMapper.getBaseMap();
    for (Map<String, Object> map:baseList     //遍历list
         ) {
        String base = null;
        BigDecimal fare = null;
        for (Map.Entry<String,Object>  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集合 返回,大家可以打印一下查询结果,就一目了然了

 

 

 

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值