首页 > 其他分享 >关于pagehelper分页无法使用的情况下进行分页,以及对显示页码navigatePages限制

关于pagehelper分页无法使用的情况下进行分页,以及对显示页码navigatePages限制

时间:2023-09-20 17:35:04浏览次数:49  
标签:pageNum 分页 pageSize int navigatePages pagehelper total pageInfo pageSum

Integer pageNum =1;
Integer pageSize = 10;
//计算总数
int total = list==null?0:list.size();
//计算总页数
int pageSum = total % pageSize == 0 ? total / pageSize : total / pageSize + 1;
PageHelper.startPage(pageNum, pageSize);

//开始分页
List<ActTrsDetailDto> collect = list.stream()
.skip((pageNum - 1) * pageSize)
.limit(pageSize).collect(Collectors.toList());
PageInfo<ActTrsDetailDto> pageInfo = new PageInfo<>(collect,5);
pageInfo.setPages(pageSum);
pageInfo.setTotal(total);

//设置页码显示5页
int[] k = new int[5];
if (pageNum==1){
for (int j = 0; j < 5; j++) {
k[j] = pageNum + j;
}
}else if (pageNum-1==1){
for (int j = 0; j < 4; j++) {
k[j+1] = pageNum + j;
}
k[0]=pageNum-1;
}else if (pageNum==pageSum) {
int z=4;
for (int j = 1; j < 6; j++) {
k[j - 1] = pageNum - z;
z--;
}
k[4]=pageSum;
}else if (pageSum-pageNum==1){
int z=3;
for (int j = 1; j < 5; j++) {
k[j - 1] = pageNum - z;
z--;
}
k[4]=pageSum;
}else {
int z=2;
int j=1;
for (int i = 0; i <5; i++) {
if (i<2){
k[i]=pageNum- z;
z--;
}
if (i==2){
k[i]=pageNum;
}
if (i>2){
k[i]=pageNum+j;
j++;
}
}
}
pageInfo.setPrePage(pageNum-1);
pageInfo.setNextPage(pageNum==pageSum?0:pageNum+1);
pageInfo.setNavigatepageNums(k);
PageHelper.clearPage();
return pageInfo;

标签:pageNum,分页,pageSize,int,navigatePages,pagehelper,total,pageInfo,pageSum
From: https://www.cnblogs.com/charleswang-1/p/17717862.html

相关文章

  • mysql大数据量 分页查询优化
    最近我老表问我一个面试问题,如果数据量很大,分页查询怎么优化。个人觉得无非就是sql优化,那无非就是走索引,避免回表查询(覆盖索引,也就是不要用select *  ,走主键索引,叶子节点有保存了数据),减少回表查询次数(定位到非聚簇索引树的叶子节点少,小表驱动大表等)我下面自己测了一个500......
  • linux系统 分页指令
    ......
  • DRF之分页类源码分析
    【一】分页类介绍DjangoRESTframework(DRF)是一个用于构建WebAPI的强大工具,它提供了分页功能,使你能够控制API响应的数据量。在DRF中,分页功能由分页类(PaginatorClass)来管理。【二】内置分页类在DRF中,分页类通常位于rest_framework.pagination模块中,它们用于分割长列表或......
  • Mybatis Plus 分页查询数据
    MybatisPlus分页查询数据一、分页配置packagecom.example.demomybatispage.config;importcom.baomidou.mybatisplus.annotation.DbType;importcom.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;importcom.baomidou.mybatisplus.extension.plugins.......
  • 系统内存管理:虚拟内存、内存分段与分页、页表缓存TLB以及Linux内存管理
    虚拟内存虚拟内存是一种操作系统提供的机制,用于将每个进程分配的独立的虚拟地址空间映射到实际的物理内存地址空间上。通过使用虚拟内存,操作系统可以有效地解决多个应用程序直接操作物理内存可能引发的冲突问题。在使用虚拟内存的情况下,每个进程都有自己的独立的虚拟地址空间,它们......
  • SQL Server 2012分页获取数据的同时获取到总记录数(优化)
    ALTERPROCEDUREdbo.tpGetPageRecords(@OffSetRowNoINT,@FetchRowNoINT,@TotalCountINTOUT)ASSELECTCSTNO,CSTABBRFROMDBATABCWHERECSTABBRLIKE'A%'ORDERBYCSTNOOFFSET(@OffSetRowNo-1)*@FetchRowNoROWSFETCH......
  • 查询我的学习计划-分页数据查询
                 ......
  • delphi FireDAC 分页查询
    FireDAC分页查询代码分页查询procedureTForm1.Button1Click(Sender:TObject);begin//设置每页返回的记录数(获取的最大记录数)FDQuery1.FetchOptions.RecsMax:=20;//获取第1页的数据(从0开始,相当于SELECT*FROMtceshiLIMIT20OFFSET0)FDQuery1.FetchOptions......
  • 分页查询
    PageInfo(github)  导入依赖<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.2</version></dependency>  controller@ApiOpera......
  • 攻城狮讲故事(二)-分页小事故
    2023年9月15日21点45分,没错,我还在加班,本来快到6点可以下班走人了,另外一个部门的人突然群里发消息,和我联调功能。功能的作用是他们给我们用文件推送100万人员信息,我们把100万人员订单信息查出来,再推送给他们,双方规定每个文件最大2万条。遇到的问题是:我给对方推送了591955条数据,但是......