SpringBoot+MybatisPlus实现关联表查询
1.说明
最近写代码用到了mybatisPlus涉及到关联表查询。需求是这样的:
我有一个专业表major其中有个字段是所属院系dept_id,我需要通过这个dept_id关联院系表department的ID去获取院系的名称。
例如:经济管理学院。
实现效果:

2.实现步骤
2.1 现有实体类
- 院系实体
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_department")
@ApiModel(value="Department对象", description="院系")
public class Department implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "院系ID")
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ApiModelProperty(value = "院系代码")
private String deptNo;
@ApiModelProperty(value = "院系名称")
private String deptName;
@ApiModelProperty(value = "院系位置")
private String deptLocation;
@ApiModelProperty(value = "备注")
private String deptRemark;
@ApiModelProperty(value = "创建时间")
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "更新时间")
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
}
- 专业实体
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_major")
@ApiModel(value="Major对象", description="专业")
public class Major implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "专业ID")
@TableId(value = "id", type = IdType.AUTO)
private Long id;
@ApiModelProperty(value = "专业代码")
private String majorNo;
@ApiModelProperty(value = "专业名称")
private String majorName;
@ApiModelProperty(value = "所属学院")
private Long deptId;
@ApiModelProperty(value = "备注")
private String majorRemark;
@ApiModelProperty(value = "创建时间")
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "更新时间")
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
}
2.2 创建vo对象
- MajorVO 前端列表展示用
@Data
@ApiModel(value = "MajorVO", description = "展示用专业信息")
public class MajorVO implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "专业ID")
private Long id;
@ApiModelProperty(value = "专业代码")
private String majorNo;
@ApiModelProperty(value = "专业名称")
private String majorName;
@ApiModelProperty(value = "所属院系ID")
@TableField("dept_id")
private Long deptId;
@ApiModelProperty(value = "所属院系")
private String deptName;
@ApiModelProperty(value = "备注")
private String majorRemark;
@ApiModelProperty(value = "创建时间")
private Date createTime;
}
2.3 修改MajorMapper
public interface MajorMapper extends BaseMapper<Major> {
/**
*
* @param page 前端传入
* @return
*/
@Select("SELECT m.*,d.`dept_name` FROM tb_major m,tb_department d WHERE m.dept_id=d.id")
List<MajorVO> selectMajorList(Page page);
}
2.4 修改MajorService
public interface MajorService extends IService<Major> {
void pageQuery(Page<MajorVO> pageParam);
}
@Service
public class MajorServiceImpl extends ServiceImpl<MajorMapper, Major> implements MajorService {
@Override
public void pageQuery(Page<MajorVO> page) {
List<MajorVO> records = baseMapper.selectMajorList(page);
page.setRecords(records);
page.setTotal(records.size());
}
}
2.5 修改controller
@ApiOperation(value = "专业分页列表")
@GetMapping("{page}/{limit}")
public Result pageQuery(
@ApiParam(name = "page", value = "当前页码", required = true)
@PathVariable Long page,
@ApiParam(name = "limit", value = "每页记录数", required = true)
@PathVariable Long limit){
Page<MajorVO> pageParam = new Page<>(page, limit);
majorService.pageQuery(pageParam);
return Result.ok().data("total", pageParam.getTotal()).data("rows", pageParam.getRecords());
}
3.swagger测试

4.项目源码
https://gitee.com/indexman/student-server
SpringBoot+MybatisPlus实现关联表查询的更多相关文章
- SpringBoot Data JPA 关联表查询的方法
SpringBoot Data JPA实现 一对多.多对一关联表查询 开发环境 IDEA 2017.1 Java1.8 SpringBoot 2.0 MySQL 5.X 功能需求 通过关联关系查询商店 ...
- Mybatis源码分析--关联表查询及延迟加载原理(二)
在上一篇博客Mybatis源码分析--关联表查询及延迟加载(一)中我们简单介绍了Mybatis的延迟加载的编程,接下来我们通过分析源码来分析一下Mybatis延迟加载的实现原理. 其实简单来说Myba ...
- .NetCore中EFCore的使用整理(二)-关联表查询
EF常用处理关联加载的方式有3中:延迟加载(Lazy Loading).贪婪加载 (Eager Loading)以及显示加载. 一.EF Core 1.1 1.当前的版本,还不支持延迟加载(Lazy ...
- 在MyBatis中查询数据、涉及多参数的数据访问操作、插入数据时获取数据自增长的id、关联表查询操作、动态SQL、关于配置MyBatis映射没有代码提示的解决方案
1. 单元测试 在单元测试中,每个测试方法都需要执行相同的前置代码和后置代码,则可以自定义2个方法,分别在这2个方法中执行前置代码和后置代码,并为这2个方法添加@Before和@After注解,然后, ...
- springboot中使用JOIN实现关联表查询
* 首先要确保你的表和想要关联的表有外键连接 repository中添加接口JpaSpecificationExecutor<?>,就可以使用springboot jpa 提供的API了. ...
- AppBox升级进行时 - 关联表查询与更新(Entity Framework)
AppBox 是基于 FineUI 的通用权限管理框架,包括用户管理.职称管理.部门管理.角色管理.角色权限管理等模块. 关联表的查询操作 使用 Include 方法,我们可以在一次数据库查询中将关联 ...
- MyBatis实现关联表查询
一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...
- MyBatis学习总结(五)——实现关联表查询(转载)
本文转载自:http://www.cnblogs.com/jpf-java/p/6013516.html 一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数 ...
- MyBatis入门学习教程-实现关联表查询
一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...
- MyBatis学习总结(五)——实现关联表查询
一.一对一关联 1.1.提出需求 根据班级id查询班级信息(带老师的信息) 1.2.创建表和数据 创建一张教师表和班级表,这里我们假设一个老师只负责教一个班,那么老师和班级之间的关系就是一种一对一的关 ...
随机推荐
- MyBatis——第一个程序
MyBatis1:初识 MyBatis第一个程序 流程:搭建环境–>导入MyBatis–>编写代码–>测试 1.创建一张User表. 关键字id.username.pwd 2.导入相 ...
- 百度网盘(百度云)SVIP超级会员共享账号每日更新(2024.01.13)
一.百度网盘SVIP超级会员共享账号 可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答. 我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免 ...
- 【水一篇】骚操作之net 6的winform启动的同时启动Net 6 WebApi【同一套代码】
引言 有段时间没有写博客了,不知道写什么,加上最近一直在玩单片机方面的东西,所以有一些懈怠.首先呢,为什么会有这么一个问题,是在一个QQ群里,有看到有人提问,能不能在启动Winform的同时去启动一个 ...
- [转帖]Oracle参数解析(parallel_force_local)
https://www.modb.pro/db/122032 是否需要增加这个参数? 往期专题请查看www.zhaibibei.cn这是一个坚持Oracle,Python,MySQL原创内容的公众号 ...
- [转帖]TiDB 数据库核心原理与架构 [TiDB v6](101)笔记
https://www.jianshu.com/p/01e49a93f671 description: "本课程专为将在工作中使用 TiDB 数据库的开发人员.DBA 和架构师设计. 本门课 ...
- [转帖]TiDB Lightning 在数据迁移中的应用与错误处理实践
TiDB Lightning 在数据迁移中的应用与错误处理实践 作者简介:DBA,会点 MySQL,懂点 TiDB,Python. 个人主页:https://tidb.net/u/seiang/ans ...
- [转帖]Shell字符串拼接(连接、合并)
http://c.biancheng.net/view/1114.html 在脚本语言中,字符串的拼接(也称字符串连接或者字符串合并)往往都非常简单,例如: 在 PHP 中,使用.即可连接两个字符串: ...
- [转帖]PostgreSQL 慢查询SQL跟踪
https://www.cnblogs.com/VicLiu/p/12017704.html PostgreSQL 开启慢SQL捕获在排查问题时是个很有效的手段.根据慢SQL让我在工作中真正解决了实际 ...
- [转帖]Datadog 能成为最大的云监控厂商吗
https://xie.infoq.cn/article/901cfd6b284e3e103ac70aeb3 作者:睿象云 2021-03-25 本文字数:2256 字 阅读完需:约 7 分钟 D ...
- ContextSwitch 学习与使用
ContextSwitch 学习与使用 说明 github上面有一个简单的测试系统调用以及上下文切换的工具. contextswitch. 下载之后直接make就可以进行简单的测试 需要注意的是 部分 ...