mybatis在resultMap的type使用Map來接收值,避免建立DTO實體類
阿新 • • 發佈:2020-09-11
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資料如下