阶段5 3.微服务项目【学成在线】_day07 课程管理实战_01-我的课程-需求分析与PageHelper技术


1 我的课程
1.1需求分析
课程添加完成后可通过我的课程进入课程修改页面,此页面显示我的课程列表,如下图所示,可分页查询。
注意:由于课程图片服务器没有搭建,这里在测试时图片暂时无法显示。
阶段5 3.微服务项目【学成在线】_day07 课程管理实战_01-我的课程-需求分析与PageHelper技术_第1张图片

上边的查询要实现分页、会存在多表关联查询,所以建议使用mybatis实现我的课程查询。

1.2 PageHelper
1.2.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语句,实现分页查询。
阶段5 3.微服务项目【学成在线】_day07 课程管理实战_01-我的课程-需求分析与PageHelper技术_第2张图片

这是课程的基本信息表,这个表中没有课程图片的
阶段5 3.微服务项目【学成在线】_day07 课程管理实战_01-我的课程-需求分析与PageHelper技术_第3张图片
所以要显示课程的图片就必须要关联课程图片表
阶段5 3.微服务项目【学成在线】_day07 课程管理实战_01-我的课程-需求分析与PageHelper技术_第4张图片
所以这个查询建议用Mybatis来做

通过Mybatis拦截器,由pageHelper对它进行拦截,从ThreadLocal中取出page和size参数,由pageHelper来拼装sql语句

添加引用

阶段5 3.微服务项目【学成在线】_day07 课程管理实战_01-我的课程-需求分析与PageHelper技术_第5张图片
阶段5 3.微服务项目【学成在线】_day07 课程管理实战_01-我的课程-需求分析与PageHelper技术_第6张图片
阶段5 3.微服务项目【学成在线】_day07 课程管理实战_01-我的课程-需求分析与PageHelper技术_第7张图片

配置数据库的类型

阶段5 3.微服务项目【学成在线】_day07 课程管理实战_01-我的课程-需求分析与PageHelper技术_第8张图片

定义方法

注意返回类型
阶段5 3.微服务项目【学成在线】_day07 课程管理实战_01-我的课程-需求分析与PageHelper技术_第9张图片
定义查询课程列表的方法
阶段5 3.微服务项目【学成在线】_day07 课程管理实战_01-我的课程-需求分析与PageHelper技术_第10张图片
xml内配置
阶段5 3.微服务项目【学成在线】_day07 课程管理实战_01-我的课程-需求分析与PageHelper技术_第11张图片

测试

执行startPage方法就会把参数设置到ThreadLocal。在拦截器里面  Mybatis执行之前就会拿到设置的页码和每页显示的数据量
阶段5 3.微服务项目【学成在线】_day07 课程管理实战_01-我的课程-需求分析与PageHelper技术_第12张图片
然后下面正常的执行查询就可以了
阶段5 3.微服务项目【学成在线】_day07 课程管理实战_01-我的课程-需求分析与PageHelper技术_第13张图片

在测试之前可以把日志设置到debug。主要用来看Mybatis里面打印出来的sql语句是什么
阶段5 3.微服务项目【学成在线】_day07 课程管理实战_01-我的课程-需求分析与PageHelper技术_第14张图片
阶段5 3.微服务项目【学成在线】_day07 课程管理实战_01-我的课程-需求分析与PageHelper技术_第15张图片
可以查询到10条记录
阶段5 3.微服务项目【学成在线】_day07 课程管理实战_01-我的课程-需求分析与PageHelper技术_第16张图片

参数要在service里面设置,也就是在调用dao之前设置分页的页码
阶段5 3.微服务项目【学成在线】_day07 课程管理实战_01-我的课程-需求分析与PageHelper技术_第17张图片
图片是分布式的文件地址,现在只需要做查询显示出来图片就可以了
阶段5 3.微服务项目【学成在线】_day07 课程管理实战_01-我的课程-需求分析与PageHelper技术_第18张图片







 

你可能感兴趣的:(阶段5 3.微服务项目【学成在线】_day07 课程管理实战_01-我的课程-需求分析与PageHelper技术)