当前位置:网站首页>12、分页插件
12、分页插件
2022-08-04 05:24:00 【猿 白】
12、分页插件
limit index,pageSize
pageSize:每页显示的条数
pageNum:当前页的页码
index:当前页的起始索引,index=(pageNum-1)*pageSize
count:总记录数
totalPage:总页数
totalPage = count / pageSize;
if(count % pageSize != 0){
totalPage += 1;
}
pageSize=4,pageNum=1,index=0 limit 0,4
pageSize=4,pageNum=3,index=8 limit 8,4
pageSize=4,pageNum=6,index=20 limit 8,4
效果:
首页 上一页 2 3 4 5 6 下一页 末页
12.1、分页插件的使用步骤
①添加依赖
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>
配置分页插件
在MyBatis的核心配置文件中配置插件
<plugins>
<!--设置分页插件-->
<plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
</plugins>
- 在查询功能之前使用PageHelper.startPage(int pageNum, int pageSize)开启分页功能
pageNum:当前页的页码
pageSize:每页显示的条数
- 在查询获取list集合之后,使用PageInfo<T> pageInfo = new PageInfo<>(List<T> list, int navigatePages)获取分页相关数据
list:分页之后的数据
navigatePages:导航分页的页码数
- 分页相关数据
PageInfo{
pageNum=8, pageSize=4, size=2, startRow=29, endRow=30, total=30, pages=8,
list=Page{count=true, pageNum=8, pageSize=4, startRow=28, endRow=32, total=30,
pages=8, reasonable=false, pageSizeZero=false},
prePage=7, nextPage=0, isFirstPage=false, isLastPage=true, hasPreviousPage=true,
hasNextPage=false, navigatePages=5, navigateFirstPage4, navigateLastPage8,
navigatepageNums=[4, 5, 6, 7, 8]
}
pageNum:当前页的页码
pageSize:每页显示的条数
size:当前页显示的真实条数
total:总记录数
pages:总页数
prePage:上一页的页码
nextPage:下一页的页码
isFirstPage/isLastPage:是否为第一页/最后一页
hasPreviousPage/hasNextPage:是否存在上一页/下一页
navigatePages:导航分页的页码数
navigatepageNums:导航分页的页码,[1,2,3,4,5]
测试:
public class PageTest {
@Test
public void testPage(){
SqlSession sqlSession = sqlSessionUtil.getSqlSession();
EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
// 查询功能之前开启分页功能
Page<Object> pages = PageHelper.startPage(1, 4);
List<Emp> emps = mapper.selectByExample(null);
// 查询功能之后可以获取分页相关的所有数据
PageInfo<Emp> empPageInfo = new PageInfo<>(emps, 5);
emps.forEach(System.out::println);
System.out.println(empPageInfo);
}
// PageInfo{
// pageNum=1, pageSize=4, size=4,
// startRow=1, endRow=4, total=42,
// pages=11,
// list=Page{count=true, pageNum=1, pageSize=4, startRow=0, endRow=4, total=42, pages=11, reasonable=false, pageSizeZero=false}[Emp{empId=1, empName='张三', age=18, gender='男', deptId=1}, Emp{empId=2, empName='李四', age=19, gender='男', deptId=2}, Emp{empId=3, empName='王五', age=20, gender='女', deptId=1}, Emp{empId=4, empName='小花', age=18, gender='女', deptId=2}],
// prePage=0, nextPage=2, isFirstPage=true, isLastPage=false,
// hasPreviousPage=false, hasNextPage=true,
// navigatePages=5, navigateFirstPage=1, navigateLastPage=5, navigatepageNums=[1, 2, 3, 4, 5]}
}
边栏推荐
- Towards Real-Time Multi-Object Tracking(JDE)
- npm报错Beginning October 4, 2021, all connections to the npm registry - including for package installa
- 使用Patroni回调脚本绑定VIP的坑
- static在不同位置定义变量居然还有不同的含义?
- DataTable uses Linq for grouping and summarization, and converts the Linq result set into DataTable
- C Expert Programming Chapter 5 Thinking about Linking 5.2 Advantages of Dynamic Linking
- System design. Seckill system
- 腾讯136道高级岗面试题:多线程+算法+Redis+JVM
- 读者让我总结一波 redis 面试题,现在肝出来了
- System design. How to design a spike system (full version transfer)
猜你喜欢
心余力绌:企业面临的软件供应链安全困境
嵌入式系统驱动初级【3】——字符设备驱动基础中_IO模型
数的划分之动态规划
The idea setting recognizes the .sql file type and other file types
How to keep the source code confidential in the development under the burning scenario
在被面试官说了无数次后,终于潜下心来整理了一下JVM的类加载器
符号表
《看见新力量》第四期免费下载!走进十五位科技创业者的精彩故事
TSF微服务治理实战系列(一)——治理蓝图
Towards Real-Time Multi-Object Tracking(JDE)
随机推荐
What are the steps for how to develop a mall system APP?
离线采集怎么看sql执行计划
【流程图】
Plus版SBOM:流水线物料清单PBOM
Interesting Kotlin 0x0E: DeepRecursiveFunction
注意!软件供应链安全挑战持续升级
《看见新力量》第四期免费下载!走进十五位科技创业者的精彩故事
Do you think border-radius is just rounded corners?【Various angles】
System design. Seckill system
关于yolo7和gpu
SLSA 框架与软件供应链安全防护
Dynamic programming of the division of numbers
QT 如何识别文件的编码格式
【一步到位】Jenkins的安装、部署、启动(完整教程)
[C language advanced] program environment and preprocessing
What are the functions of mall App development?
路网编辑器技术预研
想低成本保障软件安全?5大安全任务值得考虑
TSF微服务治理实战系列(一)——治理蓝图
如何低成本修bug?测试左移给你答案