1. 程式人生 > 實用技巧 >mybatis在resultMap的type使用Map來接收值,避免建立DTO實體類

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資料如下