当前位置:网站首页>12. Paging plugin
12. Paging plugin
2022-08-04 05:32:00 【ape white】
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);
// Before open the paging query function
Page<Object> pages = PageHelper.startPage(1, 4);
List<Emp> emps = mapper.selectByExample(null);
// After the query functionality can get all the data of paging related
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]}
}
边栏推荐
- 有趣的 Kotlin 0x0E:DeepRecursiveFunction
- Get the selected content of the radio box
- Teenage Achievement Hackers Need These Skills
- 处理List<Map<String, String>>类型
- C Expert Programming Chapter 5 Thinking about Chaining 5.6 Take it easy --- see who's talking: take the Turning quiz
- Turn: Management is the love of possibility, and managers must have the courage to break into the unknown
- static在不同位置定义变量居然还有不同的含义?
- 2022年PMP考试延迟了,该喜该忧?
- 自动化测试的成本高效果差,那么自动化测试的意义在哪呢?
- C Expert Programming Chapter 4 The Shocking Fact: Arrays and pointers are not the same 4.2 Why does my code not work
猜你喜欢
随机推荐
How to view sql execution plan offline collection
Tactile intelligent sharing - SSD20X realizes upgrade display progress bar
SLSA 框架与软件供应链安全防护
入坑软件测试的经验与建议
day13--postman接口测试
7.13 Day20----MYSQL
FPGA学习笔记——知识点总结
idea设置识别.sql文件类型以及其他文件类型
商城App开发都有哪些功能呢
Programming hodgepodge (4)
C专家编程 第4章 令人震惊的事实:数组和指针并不相同 4.1 数组并非指针
编程大杂烩(三)
深度学习21天——准备(环境配置)
MySQL日期函数
力扣:343. 整数拆分
Landing, the IFC, GFC, FFC concept, layout rules, forming method, use is analysed
leetcode 12. Integer to Roman numeral
Can‘t connect to MySQL server on ‘localhost3306‘ (10061) 简洁明了的解决方法
C专家编程 第4章 令人震惊的事实:数组和指针并不相同 4.5 数组和指针的其他区别
Do you think border-radius is just rounded corners?【Various angles】