mybatis在resultMap的type使用Map来接收值,避免建立DTO实体类

map的键为result标签的property的内容, map的值为column列中查询出来的值

<resultMap id="specialFormResultGetmap" type="java.util.Map">
        <result property="departmentName" column="DepartmentName"/>
        <result property="accountId" column="AccountID"/>
        <result property="realName" column="RealName"/>
        <result property="sexuality" column="Sexuality"/>
        <result property="specialty" column="text"/>
</resultMap>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Dao层的接口方法

方法的返回值用list来接收, 查询到的每一行的结果为list的一个元素.
list泛型为Map集合,map集合的泛型均为Obeject和Object . 方法的参数,根据业务需求定义,此处的参数用map.

List<Map<Object,Object>> selectSpecialtyFormMap(HashMap<String, Object> map);
  • 1

Service层

 public List<Map<Object, Object>> selectSpecialtyFormMap(HashMap<String, Object> ma) {
        return staffInfoDao.selectSpecialtyFormMap(ma);
    }
  • 1
  • 2
  • 3

Controller层

在Controller层
List<Map<Object, Object>> maps = staffInfoService.selectSpecialtyFormMap(ma);
这一行的代码,调用service层代码. 得到了查询的list.
map的键为属性的名称,map的值为查询到的值

@RequestMapping(value = "mapTest",method=RequestMethod.GET,produces={"application/json;charset=UTF-8"})
    public @ResponseBody JSONObject mapTest() {
        JSONObject json = new JSONObject();
        ResultDTO result = new ResultDTO();
        HashMap<String, Object> ma = new HashMap<>();
        ma.put("code",3);
        List<Map<Object, Object>> maps = staffInfoService.selectSpecialtyFormMap(ma);
        json.put("list", maps);
        return json;
	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

通过debug查看, maps的结果,可以看到, 在list集合的maps中, 存储了四个map集合.
在每一个map集合中,有5个键,分别是在resultmap中定义的property的值. value为查询出来的结果.


查询到的json数据如下

posted @ 2020-09-11 10:00  zhuyanhua4833  阅读(1282)  评论(0)    收藏  举报