前言

分页插件的必要性

互联网应用中,分页可谓无处不在,在每个需要展示数据的地方,都能找到分页的影子。在日常开发中,为了追求效率,通常使用数据库的物理分页。这时,对于一个业务逻辑SQL,大多数情况需要输出两段SQL来达到分页效果:count查询总数和limit分页,这无疑增加了大量的工作量。对于这种大量的、相似的、非业务逻辑的代码,抽象出公共插件是势在必行的。

分页插件原理

Mybatis给开发者提供了一个拦截器接口,只要实现了该接口,就可以在Mybatis执行SQL前,作一些自定义的操作。分页插件就是在此基础上开发出来的,对于一个需要分页的SQL,插件会拦截并生成两段SQL。举一个简单的例子:

原SQL:

select * from table where a = '1'

拦截后的查询总数SQL:

select count(*) from table where a = '1'

拦截后的分页SQL:

select * from table where a = '1' limit 5,10

这样我们只需要根据业务逻辑开发原SQL,不需关心分页语法对原SQL的影响,拦截器已经为我们处理好了。

pom.xml文件

添加mybatis、pagehelper、mysql和web依赖。

    <properties><java.version>1.8</java.version><mybatis.version>2.1.0</mybatis.version><mybatis.pagehelper.version>1.2.5</mybatis.pagehelper.version></properties><dependencies><!--web--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.version}</version></dependency><!-- pagehelper --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>${mybatis.pagehelper.version}</version></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>

配置文件

配置数据库信息和分页参数。

spring:datasource:driver-class-name: com.mysql.jdbc.Driverusername: rootpassword: 123456url: jdbc:mysql://localhost:3306/test?serverTimezone=GMT
pagehelper:#配置数据库类型helperDialect: mysql#3.3.0版本可用 - 分页参数合理化,默认false禁用#启用合理化时,如果pageNum<1 会查询第一页,如果pageNum>pages会查询最后一页#禁用合理化时,如果pageNum<1 或pageNum>pages会返回空数据reasonable: true#是否支持接口参数来传递分页参数,默认falsesupportMethodsArguments: true#3.5.0版本可用 - 为了支持startPage(Object params)方法#增加了一个`params`参数来配置参数映射,用于从Map或ServletRequest中取值#可以配置pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默认值params: count=countSql

实体类

@Alias("user")
public class User {private Long id;private String name;private Integer age;private String email;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}
}

mapper类

使用注解方式。

@Mapper
public interface UserMapper {@Select("select * from user")Page<User> getUserList();
}

controller类

@RestController
public class UserController {@Autowiredprivate UserMapper userMapper;//    http://localhost:8080/getUserList?pageNum=1&pageSize=2@RequestMapping("getUserList")public Page<User> getUserList(Integer pageNum, Integer pageSize) {PageHelper.startPage(pageNum, pageSize);Page<User> userList = userMapper.getUserList();return userList;}
}

测试

SpringBoot-使用分页插件(PageHelper)相关推荐

  1. springboot整合分页插件PageHelper

    一. 概述 后端开发80%都是查询操作, 而查询经常涉及到数据分页, 分页工具有很多, 本文介绍的是分页插件PageHelper, 工程基于springboot 参考文章: springBoot my ...

  2. SpringBoot之分页插件PageHelper的使用

    在springboot中使用PageHelper插件有两种较为相似的方式,接下来我就将这两种方式进行总结. 方式一:使用原生的PageHelper 1.在pom.xml中引入依赖 <depend ...

  3. 解决SpringBoot集成分页插件pagehelper出现的循环依赖问题

    版权声明 本文原创作者:谷哥的小弟 作者博客地址:http://blog.csdn.net/lfdfhl 问题描述 SpringBoot2.6.7中集成分页插件com.github.pagehelpe ...

  4. springboot+mybatis分页插件pageHelper的配置与使用

    1.在pom文件里面加入pageHelper分页jar包依赖: <dependency><groupId>com.github.pagehelper</groupId&g ...

  5. springboot中分页插件pageHelper的使用

    优点:无需你自己去封装以及关心sql分页等问题,使用很方便,前端取数据也很方便. 1.包的依赖 <!--pagehelper --><dependency><groupI ...

  6. SpringBoot集成MyBatis的分页插件PageHelper

    [写在前面] 项目的后台管理系统需要展示所有资源信息,select * 虽然方便但数据量过于庞大会严重降低查找效率,页面加载慢,用户体验差.分页自然是必要选择,但原生的方法过于繁杂.MyBatis的分 ...

  7. Springboot集成mybatis通用Mapper与分页插件PageHelper

    Springboot集成mybatis通用Mapper与分页插件PageHelper 插件介绍 通用 Mapper 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及 ...

  8. SpringBoot集成MyBatis的分页插件PageHelper(回头草)

    俗话说:好?不吃回头草,但是在这里我建议不管你是好马还是不好马,都来吃吃,带你复习一下分页插件PageHelper. 昨天给各位总结了本人学习springboot整合mybatis第一阶段的一些学习心 ...

  9. springboot进阶,分页插件 pageHelper,Swagger整合,日志

    文章目录 1,课程回顾 2,本章重点 3,具体内容 3.1 整合连接池 3.2 springboot日志配置: 3.3 springboot整合shiro 3.4 mybatis分页插件 pageHe ...

  10. hql分页获取数据总数_最简洁的分页插件PageHelper

    最简洁的分页插件PageHelper 简介 大部分后台管理项目,用的最多的展现方式是列表显示,所以我把列表查询中的分页插件拿出来写一下,方便以后写代码的时候直接复制粘贴.在我们最熟悉的springbo ...

最新文章

  1. 有没有适合部署在局域网的团队协作平台?
  2. linux的磁盘文件系统格式怎么看,linux如何下查看磁盘分区的文件系统格式?
  3. JavaScript Office文档在线编辑备忘
  4. 短信验证码“最佳实践”
  5. 现代软件工程系列 结对编程 两周写好3D 陆战棋
  6. Java编写一个WebService并在Tomcat上发布
  7. elementui的tree组件页面显示不出数据_只要10分钟,教你配置出炫酷的数据可视化大屏...
  8. Spring Batch 批量处理策略
  9. Spring ---- ssm整合
  10. opencv学习笔记05
  11. 在Python中手动引发(抛出)异常
  12. xml 标签带有号php,php操作xml入门之xml基本介绍及xml标签元素
  13. 发送邮件 空格 java_java实现邮件发送功能
  14. js中函数的this指向
  15. HTML视频自动播放
  16. 10.SpringBoot学习(十)——JDBC之 Spring Boot Jpa
  17. top与with ties用法
  18. python图片格式转换:将.png格式转换为.jpg
  19. 红外焦平面阵列调试传递函数测试方法
  20. Qt小项目(二):调色器

热门文章

  1. 邓白氏编码申请最后提交资料格式
  2. 955.WLB 不加班公司名单!再新增 5 家公司!
  3. WebGoat使用指南
  4. golang报错: WaitGroup is reused before previous Wait has returned
  5. Electron主进程和渲染进程之间通信
  6. ideaIU_13.1.3安装图解。
  7. 2023年Java面试题大全(最新版版)面试题附答案详解,看完BTA可进
  8. 父类(指针、引用)指向子类对象
  9. 七.全文检索ElasticSearch经典入门-聚合查询
  10. 关于华擎J3455安装虚拟机PVE和ESXI还有作为纯物理黑群晖的一些事宜