在上一篇博客中总结了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. c++ 11 是如何简化你的数据库访问接口的

    之前写过一篇文章专门分析了 c++ 模板编译过程中报的一个错误:<fatal error C1045: 编译器限制 : 链接规范嵌套太深 >,其中涉及到了 qtl -- 一个使用 c++ ...

  2. vs - 调试的技巧

    在自助和局部变量窗口中固定属性 https://docs.microsoft.com/zh-cn/visualstudio/debugger/autos-and-locals-windows?view ...

  3. Flutter 改善套娃地狱问题(仿喜马拉雅PC页面举例)

    前言 这篇文章是我一直以来很想写的一篇文章,终于下定决心动笔了. 写Flutter的小伙伴可能都感受到了:掘金的一些热门的Flutter文章下,知乎的一些Flutter的话题下或者一些论坛里面,喷Fl ...

  4. python之模块与类库

    什么是模块 模块是一组类,函数,方法所组成的.这些类都储存在文本文件中..py是python程序代码中的扩展名,模块可能是c或者python写的.模块的扩展名可以是.py或者是.pyc(经过编译的.p ...

  5. L3-021 神坛 (叉积排序+向量积求面积)

    题目链接 https://pintia.cn/problem-sets/994805046380707840/problems/994805046577840128 题意:给定n个点求三角形最小面积: ...

  6. java例题_21 求 1+2!+3!+...+20!的和

    1 /*21 [程序 21 求阶乘] 2 题目:求 1+2!+3!+...+20!的和 3 程序分析:此程序只是把累加变成了累乘. 4 */ 5 6 /*分析 7 * 1.汲取上一题的教训,这么大的数 ...

  7. vue之mixin理解与使用

    使用场景 当有两个非常相似的组件,除了一些个别的异步请求外其余的配置都一样,甚至父组件传的值也是一样的,但他们之间又存在着足够的差异性,这时候就不得不拆分成两个组件,如果拆分成两个组件,你就不得不冒着 ...

  8. 日志文件删除shell脚本

    大日志文件切割shell脚本 #!/bin/bash # --------------------------------------------------------------------- # ...

  9. OxyPlot.SkiaSharp显示中文乱码的问题

    oxyplot 图表控件功能强大,使用很广泛.最近考虑到性能使用OxyPlot.SkiaSharp替代OxyPlot.WPF,曲线图表初步测试,性能提升近10倍左右.基于SkiaSharp图形引擎的一 ...

  10. 学习笔记-vue 打包去#和页面空白问题

    文件资源路径是对的,但是页面空白.百度了很久找了一篇文章解决了. 1.vue项目中config文件下index.js中打包配置 build: { // Template for index.html ...