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();
  }

结果为 :

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

原文地址:https://www.cnblogs.com/handsome1013/p/5889671.html