在上一篇博客中总结了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. STL之string容器

    string string封装了char*,管理这个字符串,是一个char*型的容器. string的相关操作 头文件 #include<string> string构造函数 string ...

  2. Web全段重点整理

    1.  HTML+CSS 1.1. HTML+CssDay01 1.1.1. 常用普通标签 常用标签如下 div span a p ul+li h1-h6 img 代码示例: <img src= ...

  3. 关于HDFS存储元数据的NameNode持久化存储

    NameNode持久化场景引入: 问题:NameNode宕机,导致内存中的文件元数据丢失怎么办?我们知道元数据是存储来内存中的,所以一旦宕机,内存数据是会丢失的,因此为了避免数据丢失,HDFS中出现了 ...

  4. HiveHA机制源码分析

    hive让大数据飞了起来,不再需要专人写MR.平常我们都可以用基于thrift的任意语言来调用hive. 不过爱恨各半,hive的thrift不稳定也是出了名的.很容易就出问题,让人无计可施.唯一的办 ...

  5. ResNet的个人总结

    ResNet可以说是我认真读过的第一篇paper,据师兄说读起来比较简单,没有复杂的数学公式,不过作为经典的网络结构还是有很多细节值得深究的.因为平时不太读英文文献,所以其实读的时候也有很多地方不是很 ...

  6. P1089_津津的储蓄计划(JAVA语言)

    package 顺序与分支; /* * 题目描述 津津的零花钱一直都是自己管理.每个月的月初妈妈给津津300元钱, 津津会预算这个月的花销,并且总能做到实际花销和预算的相同. 为了让津津学习如何储蓄, ...

  7. shiro报错SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".和Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

    未能加载类"org.slf4j.impl.StaticLoggerBinder" 解决方案: <dependency> <groupId>org.slf4j ...

  8. 系统编程-信号-信号发送kill、raise、alarm

    信号发送 kill 和 raise函数 kill函数参数详解: 实验1 raise和kill 的使用 #include <stdio.h> #include <signal.h> ...

  9. [GDKOI2021] 普及组 Day2 总结

    [ G D K O I 2021 ] 普 及 组 D a y 2 总 结 [GDKOI2021] 普及组 Day2 总结 [GDKOI2021]普及组Day2总结 时间安排和昨天的GDKOI2021 ...

  10. badusb论述

    "BadUSB"是2014年计算机安全领域的热门话题之一,该漏洞由Karsten Nohl和Jakob Lell共同发现 攻击原理 TEENSY 攻击者在定制攻击设备时,会向USB ...