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(); }
結果為 :
本文系原創,轉載請注明出處,謝謝 。