学成在线第7天讲义-课程管理实战1我的课程1.1需求分析课程添加完成后可通过我的课程进入课程修改页面,此页面显示我的课程列表,如下图所示,可分页查询。上边的查询要实现分页、会存在多表关联查询,所以建议使用mybatis实现我的课程查询。1.2API接口输入参数:页码、每页显示个数、查询条件输出结果类型:QueryResponseResult<自定义类型>在api工程创建course包,创建CourseControllerApi接口。北京市昌平区建材城西路金燕龙办公楼一层电话:400-618-90901.3课程管理服务1.3.1PageHelperPageHelper是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语句,实现分页查询。//查询课程列表@ApiOperation("查询我的课程列表")publicQueryResponseResult
findCourseList(intpage,intsize,CourseListRequestcourseListRequest);北京市昌平区建材城西路金燕龙办公楼一层电话:400-618-90901)添加依赖2)配置pageHelper在application.yml中配置pageHelper操作的数据库类型:2.3.2Dao1)mapper接口2)mapper.xml映射文件3)测试Daocom.github.pagehelperpagehelper‐spring‐boot‐starter1.2.4pagehelper:helper‐dialect:mysqlimportcom.github.pagehelper.Page;importcom.xuecheng.framework.domain.course.CourseBase;importcom.xuecheng.framework.domain.course.ext.CourseInfo;importcom.xuecheng.framework.domain.course.request.CourseListRequest;importorg.apache.ibatis.annotations.Mapper;@MapperpublicinterfaceCourseMapper{CourseBasefindCourseBaseById(Stringid);PagefindCourseListPage(CourseListRequestcourseListRequest);}