当前位置:网站首页>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]}
}
边栏推荐
- [21 Days Learning Challenge] Image rotation problem (two-dimensional array)
- How to view sql execution plan offline collection
- px、em、rem的区别
- 解决错误:npm WARN config global `--global`, `--local` are deprecated
- C专家编程 第4章 令人震惊的事实:数组和指针并不相同 4.4 使声明与定义相匹配
- 获取单选框选中内容
- 深度学习环境配置
- Write golang simple C2 remote control based on gRPC
- 【云原生--Kubernetes】Pod资源管理与探针检测
- 擎朗智能全国研发创新中心落地光谷:去年曾获2亿美元融资
猜你喜欢
![[One step in place] Jenkins installation, deployment, startup (complete tutorial)](/img/f2/15fb546eb864d7ff40b5507d5c7aa5.png)
[One step in place] Jenkins installation, deployment, startup (complete tutorial)

npm报错Beginning October 4, 2021, all connections to the npm registry - including for package installa

Typora 使用保姆级教程 | 看这一篇就够了 | 历史版本已被禁用

关于yolo7和gpu

There is an 8 hour difference between the docker installation of mysql and the host.

深度学习环境配置

企业需要知道的5个 IAM 最佳实践

你以为border-radius只是圆角吗?【各种角度】

SLSA 框架与软件供应链安全防护

MySQL日志篇,MySQL日志之binlog日志,binlog日志详解
随机推荐
Large chain best freight d audit with what software?What are the functions?
[Cocos] cc.sys.browserType可能的属性
[Cocos 3.5.2]开启模型合批
MySql数据恢复方法个人总结
[Evaluation model] Topsis method (pros and cons distance method)
word 公式编辑器 键入技巧 | 写数学作业必备速查表
BFC、IFC、GFC、FFC概念理解、布局规则、形成方法、用处浅析
入坑软件测试的经验与建议
5个开源组件管理小技巧
字节最爱问的智力题,你会几道?
败给“MySQL”的第60天,我重振旗鼓,四面拿下蚂蚁金服offer
在被面试官说了无数次后,终于潜下心来整理了一下JVM的类加载器
Cache pool of unity framework
day13--postman interface test
符号表
信息学奥赛一本通 1312:【例3.4】昆虫繁殖
腾讯136道高级岗面试题:多线程+算法+Redis+JVM
Dynamic programming of the division of numbers
DataTable使用Linq进行分组汇总,将Linq结果集转化为DataTable
static在不同位置定义变量居然还有不同的含义?