在上一篇博客中總結了MyBatis Plus 實現多表分頁模糊查詢(鏈接在最后)。返回類型是編寫一個專門的vo類。這次是返回List < Map >
前言
編寫一個專門的vo返回類,主要原因是如果其他地方也要用到到這個返回結果類,相比於map,返回類比較方便處理。
但是,這次的返回類型吧並不常用,所以就考慮了List<Map<String,Object>>
解決
在上一篇博客的基礎,我們需要將返回類型換成List<Map<String,Object>>
下面舉一個例子,演示一下。
controller
@PostMapping("getAll")
public Result getAll(@RequestBody DormitoryStudent dormitoryStudent){
List<Map<String,Object>> stus = dormitoryStudentService.getList(dormitoryStudent.getDormitoryId());
return Result.ok().data("list",stus);
}
service
public interface DormitoryStudentService extends IService<DormitoryStudent> {
List<Map<String,Object>> getList(Integer dormitoryId);
}
serviceImpl
@Service
public class DormitoryStudentServiceImpl extends ServiceImpl<DormitoryStudentMapper, DormitoryStudent> implements DormitoryStudentService {
@Override
public List<Map<String,Object>> getList(Integer dormitoryId) {
List<Map<String,Object>> stus = this.baseMapper.getList(dormitoryId);
return stus;
}
}
mapper
public interface DormitoryStudentMapper extends BaseMapper<DormitoryStudent> {
List<Map<String,Object>> getList(@Param("dormitory_id") Integer dormitoryId);
}
mapper.xml
非常重要的一個點 resultType="java.util.HashMap"
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dj.dormitory.mapper.DormitoryStudentMapper">
<select id="getList" resultType="java.util.HashMap">
select tb_user.name student_name,tb_student.sno
from tb_student
left outer join tb_user on tb_user.id = tb_student.user_id
left outer join tb_dormitory_student on tb_dormitory_student.student_id = tb_student.id
where tb_dormitory_student.dormitory_id = #{dormitory_id}
</select>
</mapper>
接口測試
知識點補充
resultType:
-
基本類型 :resultType=基本類型
-
List類型: resultType=List中元素的類型,注意:不是list
-
Map類型
- 單條記錄:resultType =map
- 多條記錄:resultType = Map中value的類型
參考鏈接: