美文网首页
MyBatis查询返回Map类型数据

MyBatis查询返回Map类型数据

作者: 凯睿看世界 | 来源:发表于2018-12-25 11:07 被阅读98次

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

    1.Mapper中SQL:

    <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集合 返回,大家可以打印一下查询结果,就一目了然了。

    原文:https://blog.csdn.net/cydbetter/article/details/79074064

    相关文章

      网友评论

          本文标题:MyBatis查询返回Map类型数据

          本文链接:https://www.haomeiwen.com/subject/txnxlqtx.html