Mybatis 遍历 List<Map<String,Object>>
在上一篇博客中总结了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的类型
参考链接:
https://www.cnblogs.com/libin6505/p/10036898.html
Mybatis 遍历 List<Map<String,Object>>的更多相关文章
- jsp页面遍历List<Map<String,Object>>
多表联查会有此类结果出现, 查阅发现基本解决思路是双重遍历,获取map,entry.value等方法. 最终发现可以使用c:forEach单次遍历,map中的key值大写,即可得到object. Co ...
- c标签遍历List<Map<String, Object>> 数据格式
<c:forEach varStatus="loop" var="dataMap" items="${dataMap}"> &l ...
- 分页查询和分页缓存查询,List<Map<String, Object>>遍历和Map遍历
分页查询 String sql = "返回所有符合条件记录的待分页SQL语句"; int start = (page - 1) * limit + 1; int end = pag ...
- List<Map<String,Object>>使用Java代码遍历
List<Map<String,Object>>的结果集怎么使用Java代码遍历以获取String,Object的值: package excel; import java.u ...
- json遍历,List<Map<String,Object>>遍历
js怎样给input对象追加属性,如disabled $(":textbox").attr({"disabled":true}); List<Map< ...
- mybatis使用Map<String,Object>映射mysql结果集,关于字段的问题
--mysql常用字段类型如图 --mybatis使用Map<String,Object>映射,会将tinyint映射成Integer类型.decimal映射成BigDecimal类型 所 ...
- MyBatis 返回Map<String,Object>类型
<!-- 导出所有数据 --> <select id="exportAll" resultMap="map"> SELECT t1.ME ...
- 迭代输出Map和List<Map<String,Object>>的方法
一.Map<String,Object> String:key的类型 Object:value的类型,value可能是String,或者int类型,什么类型都可以 对于Map接口来说,本身 ...
- 添加,删除List<Map<String, Object>>元素
这里讲对List<Map<String, Object>>的数据结构的添加和删除实例 添加 //初始化 List<Map<String, Object>> ...
随机推荐
- Python脚本打包成exe执行文件
需求 一个教辅目录结构检查工具,目录结构是[书籍]-[章节]-[题目|答案]-[*.jpg],后台有个异步处理的服务,需要强依赖这个目录结构. 书籍解析是单独的pipeline,日志对用户不可见,这里 ...
- 第18 章 : Kubernetes 调度和资源管理
Kubernetes 调度和资源管理 这节课主要讲三部分的内容: Kubernetes 的调度过程: Kubernetes 的基础调度能力(资源调度.关系调度): Kubernetes 高级调度能力( ...
- CrashLoopBackOff的解决办法之一
问题来源 # kubectl get pods -n assembly NAME READY STATUS RESTARTS AGE alertmanager-858b7749c5-6jsfh 0/1 ...
- 【oracle学习笔记01】oracle architecture —— Memory Strucrure
附图3: granule_size for each components 附图4:
- 源码篇:Handler那些事
前言 Handler属于八股文中非常经典的一个考题了,导致这个知识点很多时候,考官都懒得问了:这玩意很久之前就看过,但是过了一段时间,就很容易忘记,但是处理内存泄漏,aidlHandler之类的考点答 ...
- 201871030116-李小龙 实验一 软件工程准备——Blog
项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs.com/nwnu-dai ...
- 阿里妈妈Java后端 社招5面(Offer已拿)
最近由于个人原因, 由于前面两面的时间过去的有点久了,只能根据记忆大概写些记得问题. 阿里妈妈1面 40mins(2021-02-22) 1. 能简单介绍下自己和自己做的项目吗? 2. 关于项目的 ...
- (十五)struts2的文件上传和下载
文件上传的原理 我们以前学习上传的时候知道需要将表单的enctype属性设置为multipart/form-data. 表单的enctype属性指定的是表单数据的编码方式,有三个值: -applica ...
- NPM 与 NPX 区别
NPM 和 NPX 区别 NPM Node Package Manager npm 是 Node.js 的软件包管理器,其目标是自动化的依赖性和软件包管理 NPX npx 是执行 Node 软件包的工 ...
- 黑马 - poi Excel
3.poi入门操作 3.1 搭建环境 1 <dependency> 2 <groupId>org.apache.poi</groupId> 3 <artifa ...