在spring-boot中使用pageHelper插件
时间:2022-07-23
本文章向大家介绍在spring-boot中使用pageHelper插件,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在spring-boot中使用pageHelper插件
添加依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
注意:如果是mvc项目则是下面这个依赖
<!-- pagehelper分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.2.0</version>
</dependency>
如果在spring-boot项目中引入spring-mvc项目则会引发错误
分页方法
@RequestMapping("/findAll")
//@RequestParam(required = true,defaultValue = "1") 如果前台页面没有传入page的值,那么采用默认值1
public String findAll(@RequestParam(required = true,defaultValue = "1") Integer page, Model model){
//开始分页
PageHelper.startPage(page,10);
List<Car> carList = autoService.findAll();
PageInfo<Car> pageInfo = new PageInfo<>(carList);
model.addAttribute("list",carList);
//将分页信息存入model对象,以便前台对象使用
model.addAttribute("page",pageInfo);
return "list";
}
前台页面
<p>第${page.pageNum}页</p>
<p>共${page.pages}页</p>
<div><a href="findAll?page=${page.pages-(page.pages-1)}" class="layui-btn">首页</a></div>
<div><a href="findAll?page=${page.prePage}" class="layui-btn">上一页</a></div>
<div><a href="findAll?page=${page.nextPage}" class="layui-btn">下一页</a></div>
<div><a href="findAll?page=${page.pages}" class="layui-btn">尾页</a></div>
常用的PageInfo对象方法
pages:总页数
pageNum:当前页
prePage:上一页
nextPage:下一页
firstPage:第一页
lastPage:最后一页
但是需要注意的是firstPage是获取到导航条上的第一页,lastPage是获取到导航条上的最后一页,并不是真正的最后一页
通过观察源码:
@Deprecated
// firstPage就是1, 此函数获取的是导航条上的第一页, 容易产生歧义
public int getFirstPage() {
return navigateFirstPage;
}
@Deprecated
// 请用getPages()来获取最后一页, 此函数获取的是导航条上的最后一页, 容易产生歧义.
public int getLastPage() {
return navigateLastPage;
}
解决办法:
通过前台代码观察可以得出点击最后一页的按钮是吧page=“最后一页的值”,传递给后台,后台再去查询
所以最后一页也可以写成pages
第一页楠就是page=1,可以直接赋值给他,也可以这样写page.pages-(page.pages-1) 总页数减去总页数减一的差
分页原理
分页原理在
有介绍 具体可以查看这篇文章
分页原理类似spring的aop 拦截到sql语句进行增强
例如 sql:select * from tableName
增强后:sql : select * from tableName limit ?,?
- 如何通过VPC在本机搭建局域网
- 你常用的10个MySQL命令
- WCF技术剖析之三十一: WCF事务编程[下篇]
- WCF技术剖析之三十一:WCF事务编程[上篇]
- 学习SpringMVC——你们要的REST风格的CRUD来了
- 并发中的同步--WCF并发体系的同步机制实现
- WCF 技术剖析之三十三:你是否了解WCF事务框架体系内部的工作机制?[下篇]
- 学习SpringMVC——从HelloWorld开始
- 小程序年底重磅更新,小游戏上线,最强入口也来了!
- 学习SpringMVC——如何获取请求参数
- 谈谈关于MVP模式中V-P交互问题
- 学习Spring——两个你熟悉的不能再熟悉的场景使用
- 学习Spring——依赖注入
- 机会真的多吗?
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- TKE之初识容器探测器
- 2.3.2 JDK动态代理 -《SSM深入解析与项目实战》
- mac设备安装nginx注意事项
- 《研发运营安全白皮书(2020年)》深度解读:全生命周期安全体系将是未来趋势
- 深度学习故障诊断:残差收缩网络 Residual Shrinkage Networks
- Java基于SSM的个人博客系统(源码 包含前后台)
- 聊聊RespServer
- Spring Boot系列之读取配置
- Flutter中State深入分析理解
- Xenomai3.1+ubuntu 18.04/16.04
- 聊聊RespCommand
- Python爬取网站图片
- PHP实现码云Gitee的WebHook密钥验证算法
- 带你用 Python 实现自动化群控设备
- Pyhon制作脚本提取日志数据