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();
}
结果为 :
本文系原创,转载请注明出处,谢谢 。