zoukankan      html  css  js  c++  java
  • MyBatis的返回参数类型和查询结果遍历

    MyBatis的返回参数类型分两种

    1. 对应的分类为:

    1.1.resultMap:

    1.2.resultType:

    2 .对应返回值类型:

    2.1.resultMap:结果集

    2.2.resultType:int,string ,long ,class

    遇到一个问题,在返回Map类型时候没有解析正确,不得不返回一个JavaBean,趁着有空,重新看了下,现在可以用Mybatis返回Map,List<Map>了 。

                返回Map,Mybatis配置如下 :

    <select id="getCountyHashMap" resultType="java.util.HashMap">
        select name,id from
        tsql_test_region where
        id=#{id}
      </select>

    ServiceImpl如下 :

    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如下 :

    @RequestMapping(value = "/region3", method = RequestMethod.GET)
      public @ResponseBody
      Map<String, Long> getCountyMap(@RequestParam(required = true) int regionId) {
        return regionInfoService.getCountyHashMap(regionId);
      }

    结果为 :

         返回List<Map>类似 :

    Mybatis配置 :

    <select id="getRegionHashMap" resultType="java.util.HashMap">
        select name,id from
        tsql_test_region order by id
      </select>

    ServiceImpl如下 :

    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如下 :

    @RequestMapping(value = "/region2", method = RequestMethod.GET)
      public @ResponseBody
      Map<String, Long> getRegionMap() {
        return regionInfoService.getRegionHashMap();
      }

    结果为 :

          本文系原创,转载请注明出处,谢谢 。

  • 相关阅读:
    C#深复制和浅复制
    C#程序设计六大原则记录
    C#异步
    线程同步
    线程基础
    委托,事件
    XmlSerializer
    C#接口
    C#封装
    C#多态
  • 原文地址:https://www.cnblogs.com/handsome1013/p/5889671.html
Copyright © 2011-2022 走看看