您的位置:首页 > 其它

Mybatis返回Map,List<Map>

2016-12-06 10:17 471 查看
            上次写[简单]Spring_Mybatis_CRUD简单示例(带数据库),遇到一个问题,在返回Map类型时候没有解析正确,不得不返回一个JavaBean,趁着有空,重新看了下,现在可以用Mybatis返回Map,List<Map>了。

            返回Map,Mybatis配置如下:

           

Sql代码  


<select id="getCountyHashMap" resultType="java.util.HashMap">  

        select name,id from  

        tsql_test_region where  

        id=#{id}  

    </select>  

    ServiceImpl如下:

  

Java代码  


public Map<String, Long> getCountyHashMap(long id) {  

        Map<String, Object> regionMap = regionInfoMapper.getCountyHashMap(id);  

        Map<String, Long> resultMap = new HashMap<String, Long>();  

        String region = null;  

        Long vid = null;  

        for (Map.Entry<String, Object> entry : regionMap.entrySet()) {  

            if ("NAME".equals(entry.getKey())) {  

                region = (String) entry.getValue();  

            } else if ("ID".equals(entry.getKey())) {  

                vid = ((java.math.BigDecimal) entry.getValue()).longValue();  

            }  

        }  

        resultMap.put(region, vid);  

        return resultMap;  

    }  

    Controller如下:

  

Java代码  


@RequestMapping(value = "/region3", method = RequestMethod.GET)  

    public @ResponseBody  

    Map<String, Long> getCountyMap(@RequestParam(required = true) int regionId) {  

        return regionInfoService.getCountyHashMap(regionId);  

    }  

    结果为:

 

    



     返回List<Map>类似:

     Mybatis配置:

  

Sql代码  


<select id="getRegionHashMap" resultType="java.util.HashMap">  

        select name,id from  

        tsql_test_region order by id  

    </select>  

   ServiceImpl如下:

  

Java代码  


public Map<String, Long> getRegionHashMap() {  

        List<Map<String, Object>> regionMap = regionInfoMapper  

                .getRegionHashMap();  

        Map<String, Long> resultMap = new HashMap<String, Long>();  

        for (Map<String, Object> map : regionMap) {  

            String region = null;  

            Long id = null;  

            for (Map.Entry<String, Object> entry : map.entrySet()) {  

                if ("NAME".equals(entry.getKey())) {  

                    region = (String) entry.getValue();  

                } else if ("ID".equals(entry.getKey())) {  

                    id = ((java.math.BigDecimal) entry.getValue()).longValue();  

                }  

            }  

            resultMap.put(region, id);  

        }  

        return resultMap;  

    }  

   Controller如下:

  

Java代码  


@RequestMapping(value = "/region2", method = RequestMethod.GET)  

    public @ResponseBody  

    Map<String, Long> getRegionMap() {  

        return regionInfoService.getRegionHashMap();  

    }  

    结果为:

 

    



      本文系原创,转载请注明出处,谢谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: