SpringBoot+MybatisPlus实现关联表查询
2020-04-19 20:18
881 查看
1.说明
最近写代码用到了mybatisPlus涉及到关联表查询。需求是这样的:
我有一个专业表major其中有个字段是所属院系dept_id,我需要通过这个dept_id关联院系表department的ID去获取院系的名称。
例如:经济管理学院。
实现效果:
2.实现步骤
2.1 现有实体类
- 院系实体
```java @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测试
需要源码的朋友我过几天会把整个【学生信息管理系统】发出来,敬请期待:)
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- springboot整合mybatis-plus基于纯注解实现一对一(一对多)查询
- [置顶] 【二】Springboot+Mybatis+Redis实现用户信息查询缓存
- 初学spring boot 记录下过程-整合mybatis实现分页查询(四)
- Springboot整合MybatisPlus的实现过程解析
- 求助!spring boot框架中想用mybatis实现带条件的分页查询,但结果集为空
- springboot整合mybatis-plus实现分页
- 实现增删改查(SpringBoot、MyBatis-Plus与Thymeleaf)
- 四步教你SpringBoot+Mybatis-plus分页插件(简单实现)
- SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架
- 详细步骤!!!idea+springboot+mybatis+jsp+bootstrap实现从mysql查询出数据并显示(源码)
- 微服务架构实战篇(三):Spring boot2.0 + Mybatis + PageHelper实现增删改查和分页查询功能
- Springboot+mybatis+MySQL实现简单的多表查询
- SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架
- SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架
- 超简单 springboot+ mybatisplus+atomikos实现多数据源分布式事务
- SpringBoot+MyBatis+PostgreSQL+PostGis实现地理几何元素查询
- SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架
- SpringBoot+Mybatis+Mybatis Plus+Shiro实现一个简单的项目架构
- SpringBoot+Mybatis-Plus 实现踩坑解决(Mapper注入失败)
- SpringBoot整合MybatisPlus的简单教程实现(简单整合)