学成在线--17.我的课程

本文介绍了如何通过PageHelper插件实现Mybatis在SpringBoot项目中的分页查询功能,详细讲解了从需求分析到前端页面展示的全过程。涉及API接口设计、PageHelper的介绍和配置、Dao接口与Mapper文件、Service和Controller的实现,以及前端Vue组件的创建和路由设置。
摘要由CSDN通过智能技术生成

一.需求分析

课程添加完成后可通过我的课程进入课程修改页面,此页面显示我的课程列表,如下图所示,可分页查询。
在这里插入图片描述上边的查询要实现分页、会存在多表关联查询,所以建议使用mybatis实现我的课程查询。

二.API接口

在api工程创建course包,创建CourseControllerApi接口。
文件位置:xcEduService01\xc-service-api\src\main\java\com\xuecheng\api\course\CourseControllerApi.java

//查询课程列表
@ApiOperation("查询我的课程列表")
public QueryResponseResult<CourseInfo> findCourseList(
	int page,
	int size,
	CourseListRequest courseListRequest
);

输入参数:页码、每页显示个数、查询条件

输出结果类型:QueryResponseResult<自定义类型>

三.PageHelper

1.PageHelper介绍

PageHelper是mybatis的通用分页插件,通过mybatis的拦截器实现分页功能,拦截sql查询请求,添加分页语句,最终实现分页查询功能。

我的课程具有分页功能,本项目使用Pagehelper实现Mybatis分页功能开发,由于本项目使用springboot开发,在springboot上集成pagehelper(https://github.com/pagehelper/pagehelper-spring-boot)

PageHelper的使用方法及原理如下:
在调用dao的service方法中设置分页参数:PageHelper.startPage(page, size),分页参数会设置在ThreadLocal中PageHelper在mybatis执行sql前进行拦截,从ThreadLocal取出分页参数,修改当前执行的sql语句,添加分页sql。

最后执行添加了分页sql的sql语句,实现分页查询。

在这里插入图片描述

2.添加依赖

文件位置:xcEduService01\xc-service-manage-course\pom.xml

<dependency>
	<groupId>com.github.pagehelper</groupId>
	<artifactId>pagehelper‐spring‐boot‐starter</artifactId>
	<version>1.2.4</version>
</dependency>

3.配置pageHelper

在application.yml中配置pageHelper操作的数据库类型:
文件位置:xcEduService01\xc-service-manage-course\src\main\resources\application.yml

pagehelper:
	helper‐dialect: mysql

四.Dao

1.mapper 接口

文件位置:xcEduService01\xc-service-manage-course\src\main\java\com\xuecheng\manage_course\dao\CourseMapper.java

import com.github.pagehelper.Page;
import com.xuecheng.framework.domain.course.CourseBase;
import com.xuecheng.framework.domain.course.ext.CourseInfo;
import com.xuecheng.framework.domain.course.request.CourseListRequest;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface CourseMapper {
   
	CourseBase findCourseBaseById(String id);	
	Page<CourseInfo> findCourseListPage(CourseListRequest courseListRequest);
}

2.mapper.xml映射文件

文件位置:xcEduService01\xc-service-manage-course\src\main\resources\com\xuecheng\manage_course\dao\CourseMapper.xml

<select id="findCourseListPage" resultType="com.xuecheng.framework.domain.course.ext.CourseInfo" parameterType="com.xuecheng.framework.domain.course.request.CourseListRequest">
	SELECT
	course_base.*,
	(SELECT pic FROM course_pic WHERE courseid = course_base.id) pic
	FROM
	course_base
</select>

3.测试Dao

文件位置:xcEduService01\xc-service-manage-course\src\test\java\com\xuecheng\manage_course\dao\TestDao.java

//测试分页
@Test
public void testPageHelper(){
   
	PageHelper.startPage(2, 1);
	CourseListRequest courseListRequest = new CourseListRequest();
	Page<CourseInfo> courseListPage = courseMapper.findCourseListPage(courseListRequest);
	List<CourseInfo> result = courseListPage.getResult();
	System.out.println(courseListPage);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值