在上一篇博客中总结了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:

  1. 基本类型 :resultType=基本类型

  2. List类型: resultType=List中元素的类型,注意:不是list

  3. Map类型

    • 单条记录:resultType =map
    • 多条记录:resultType = Map中value的类型

参考链接:

MyBatis Plus 实现多表分页模糊查询

https://www.cnblogs.com/libin6505/p/10036898.html

Mybatis 遍历 List<Map<String,Object>>的更多相关文章

  1. jsp页面遍历List<Map<String,Object>>

    多表联查会有此类结果出现, 查阅发现基本解决思路是双重遍历,获取map,entry.value等方法. 最终发现可以使用c:forEach单次遍历,map中的key值大写,即可得到object. Co ...

  2. c标签遍历List<Map<String, Object>> 数据格式

    <c:forEach varStatus="loop" var="dataMap" items="${dataMap}"> &l ...

  3. 分页查询和分页缓存查询,List<Map<String, Object>>遍历和Map遍历

    分页查询 String sql = "返回所有符合条件记录的待分页SQL语句"; int start = (page - 1) * limit + 1; int end = pag ...

  4. List<Map<String,Object>>使用Java代码遍历

    List<Map<String,Object>>的结果集怎么使用Java代码遍历以获取String,Object的值: package excel; import java.u ...

  5. json遍历,List<Map<String,Object>>遍历

    js怎样给input对象追加属性,如disabled $(":textbox").attr({"disabled":true}); List<Map< ...

  6. mybatis使用Map<String,Object>映射mysql结果集,关于字段的问题

    --mysql常用字段类型如图 --mybatis使用Map<String,Object>映射,会将tinyint映射成Integer类型.decimal映射成BigDecimal类型 所 ...

  7. MyBatis 返回Map<String,Object>类型

    <!-- 导出所有数据 --> <select id="exportAll" resultMap="map"> SELECT t1.ME ...

  8. 迭代输出Map和List<Map<String,Object>>的方法

    一.Map<String,Object> String:key的类型 Object:value的类型,value可能是String,或者int类型,什么类型都可以 对于Map接口来说,本身 ...

  9. 添加,删除List<Map<String, Object>>元素

    这里讲对List<Map<String, Object>>的数据结构的添加和删除实例 添加 //初始化 List<Map<String, Object>> ...

随机推荐

  1. MySQL入门(4)——操作数据表

    MySQL入门(4)--操作数据表 创建数据库 CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 数据库名 [(create_definition,...)] [tab ...

  2. 安装anaconda和第三方库tushare

    安装anaconda和第三方库tushare 血泪教训 下载32位的anaconda(同你Python版本,不然会碰到第三方库无法import的问题) 安装anaconda 安装到C盘会比较快,安装到 ...

  3. 2018ICPC南京Problem G. Pyramid

    题意: 询问类似于这样的三角形中:里面正三角形的个数是多少. 思路:打表找了个规律发现就是C4n+3     1 //#include<bits/stdc++.h> 2 #include& ...

  4. 2021华为软件精英挑战赛(C/C++实现)-苦行僧的实现过程

    下面给出2021华为软件精英挑战赛参与的整个过程,虽然成绩不是很好,但是也是花了一些时间的,希望后面多多学习,多多进步. 代码已经上传到了Github上:https://github.com/myFr ...

  5. PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642

    PAT (Basic Level) Practice (中文)1070 结绳 (25 分) 凌宸1642 题目描述 给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下 ...

  6. kubernetes1.17.2结合ceph13.2.8部署gitlab12.1.6

    [root@bs-k8s-ceph ~]# ceph -s cluster: id: 11880418-1a9a-4b55-a353-4b141e2199d8 health: HEALTH_OK se ...

  7. 手摸手教你阅读和调试大型开源项目 ZooKeeper

    本文作者:HelloGitHub-老荀 Hi,这里是 HelloGitHub 推出的 HelloZooKeeper 系列,免费开源.有趣.入门级的 ZooKeeper 教程,面向有编程基础的新手. 项 ...

  8. [GDKOI2021] 提高组 Day 2 总结

    [ G D K O I 2021 ]    提 高 组    D a y   2    总 结 不明的感觉今天的题比昨天的简单些,感觉今天爆炸的可能性很低. 嗯,于是乎,就很自信地打完了比赛.然后下午 ...

  9. [面试仓库]CSS面试题汇总-图文样式篇

      图文样式这,我们挑了一个最常见的来说:line-height继承问题.从三个方面来考虑: 如果是具体的数值,则继承该数值 body{ font-size:32px; line-height:40p ...

  10. BUAA_OO_第二单元

    BUAA_OO_2020_UNIT2 一.程序结构分析 第五次作业 UML & Mertrics ​ 电梯的调度问题,实质上就是任务的请求与分配问题,笔者在第五次作业中采用简单的"生 ...