7、PageHelper分页介绍

简介: 查询要实现分页、会存在多表关联查询,所以建议使用mybatis实现我的课程查询。单表查询直接用Spring Data JPA,多表关联查询使用Mybatis有利于后期优化处理。

课程管理:

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

单表查询直接用Spring Data JPA,多表关联查询使用Mybatis有利于后期优化处理。

API接口:

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

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

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

本项目使用Pagehelper实现Mybatis分页功能开发,由于本项目使用Springboot开发,在Springboot上集成pagehelper。

分页原理:

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

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

具体配置:

1、在pom中添加相关依赖:

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

2、在application.yml中配置pageHelper操作的数据库类型:

pagehelper: 
  helper‐dialect: mysql

3、定义接口

在测试类中编写测试方法:

@Test
    public void testPageHelper() {
        //查询第1页,每页显示10条记录
        PageHelper.startPage(1, 10);
        Page<CourseBase> courseList = courseMapper.findCourseList();
        List<CourseBase> result = courseList.getResult();
        long total = courseList.getTotal();
        System.out.println(result);
    }

在查询SQL前先设置分页:PageHelper.startPage(1, 10);,然后查询出list集合,调用getResult()方法即可查询到分页数据。


4、查看debug日志:

在logback-spring.xml配置文件中将info改为debug。

1e24d63cd605e4089354dfcf73249a47_watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lhbmdfZ3Vhbmcz,size_16,color_FFFFFF,t_70.png

5、在前端course_list.vue中配置element的分页card组件


新增课程用户流程:

1、用户进入“我的课程”页面,点击“新增课程”,进入新增课程页面

2、填写课程信息,选择课程分类、课程等级、学习模式等。

3、信息填写完毕,点击“提交”,课程添加成功或课程添加失败并提示失败原因。


课程分类查询:

在新增课程界面需要选择课程所属分类, 分类信息是整个项目非常重要的信息,课程即商品,分类信息设置的好 坏直接影响用户访问量。

前端展示课程分类使用elemenet-ui的cascader(级联选择器)组件。

编写后台CategoryController中的list方法。


数据字典:

在新增课程界面需要选择课程等级、课程状态等,这些信息统一采用数据字典管理的方式。

编写后台SysDictionaryController中的getByType方法。


获取选择的分类:

在controller中添加addCourseBase方法。


目录
相关文章
|
5月前
|
SQL Java 关系型数据库
PageHelper分页插件最新源码解读及使用
PageHelper分页插件最新源码解读及使用
|
5月前
pagehelper分页插件
pagehelper分页插件
57 0
|
SQL 缓存 JavaScript
PageHelper 使用中的一些坑
PageHelper 使用中的一些坑
PageHelper 使用中的一些坑
|
11月前
|
SQL Java 数据库连接
Mybatis的两种分页方式:RowBounds和PageHelper
Mybatis的两种分页方式:RowBounds和PageHelper
105 0
|
SQL Java 数据库连接
PageHelper分页插件的使用
PageHelper分页插件的使用
201 0
|
SQL 存储 Java
PageHelper的深入了解
PageHelper的深入了解
112 0
|
前端开发 Java 关系型数据库
详解Mybatis之分页插件【PageHelper】
详解Mybatis之分页插件【PageHelper】
|
SQL 前端开发 Java
java后端pageHelper分页实现方法
java后端pageHelper分页实现方法
|
Oracle 关系型数据库 Java
|
XML SQL Java
Mybatis分页插件PageHelper的学习与使用
Mybatis分页插件PageHelper的学习与使用
Mybatis分页插件PageHelper的学习与使用