首页 > 其他分享 >分页工具类

分页工具类

时间:2022-11-15 16:56:19浏览次数:41  
标签:分页 pageSize currPage int list totalCount 工具 public

package com.cars.ict.common.utils;

import com.baomidou.mybatisplus.core.metadata.IPage;

import java.io.Serializable;
import java.util.List;

/**
* 分页工具类
*
* @author Mark [email protected]
*/
public class PageUtils implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 总记录数
*/
private int totalCount;
/**
* 每页记录数
*/
private int pageSize;
/**
* 总页数
*/
private int totalPage;
/**
* 当前页数
*/
private int currPage;
/**
* 列表数据
*/
private List<?> list;

/**
* 分页
* @param list 列表数据
* @param totalCount 总记录数
* @param pageSize 每页记录数
* @param currPage 当前页数
*/
public PageUtils(List<?> list, int totalCount, int pageSize, int currPage) {
this.list = list;
this.totalCount = totalCount;
this.pageSize = pageSize;
this.currPage = currPage;
this.totalPage = (int)Math.ceil((double)totalCount/pageSize);
}

/**
* 分页
*/
public PageUtils(IPage<?> page) {
this.list = page.getRecords();
this.totalCount = (int)page.getTotal();
this.pageSize = (int)page.getSize();
this.currPage = (int)page.getCurrent();
this.totalPage = (int)page.getPages();
}

public int getTotalCount() {
return totalCount;
}

public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}

public int getPageSize() {
return pageSize;
}

public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}

public int getTotalPage() {
return totalPage;
}

public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}

public int getCurrPage() {
return currPage;
}

public void setCurrPage(int currPage) {
this.currPage = currPage;
}

public List<?> getList() {
return list;
}

public void setList(List<?> list) {
this.list = list;
}

}


使用示例:

1、controller:
    @GetMapping("/stationMonthOrYearList")
public R stationMonthOrYearList(String DEPTCODE, String date, String biaoshi, String yearOrMonth, Integer page, Integer pageSize){
PageUtils pageUtils = energyService.getMonthOrYearList(DEPTCODE, date, biaoshi, yearOrMonth, page, pageSize);
// Map<Integer, EnergyDetailVo> dayDeviceTypeEnergy = energyService.getMonthOrYearList(DEPTCODE, date, biaoshi, yearOrMonth);
return R.ok().setData(pageUtils);
}

2、service:
PageUtils getMonthOrYearList(String deptcode, String date, String biaoshi, String yearOrMonth, Integer page, Integer pageSize);

3、Impl:

.......
List<EnergyDetailVo> ret = ......

得到一个List类型的集合数据,然后使用下面的处理方式就可以实现分页操作了:
① .skip(Integer) 是跳过前几页显示Integer个数量之后的内容。
② new PageUtils( , , , ) 构造参数:第一个是计算后得到的想要分页的这里是List类型的数据,第二个参数是得到的数据的大小,
第三个参数是一页的大小,第四个参数是页码,也就是第几页。
List<EnergyDetailVo> collect = ret.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
return new PageUtils(collect, ret.size(), pageSize, pageNum);
分页总结:
1.引入工具类,也可以根据需要自定义工具类。
2.对得到的数据进行封装。




标签:分页,pageSize,currPage,int,list,totalCount,工具,public
From: https://www.cnblogs.com/sensenh/p/16892980.html

相关文章

  • 非SDK接口自动化检测工具--veridex
    前言在AndroidP版本,Google对非SDK接口增加了管控。SDK接口指的是Android官方开发文档中声明的方法,即​​文档地址​​中所能查询到的API,除了这些,其他的API都是非SDK接......
  • Manico Mac苹果电脑快速App启动和切换工具软件
    mac软件下载:ManicoforMac为macOS设计的快速的App启动和切换工具。使用它,在macOS上启动及切换App将变得无比顺畅。在长期的使用过程中,用户还将形成肌肉记忆,从而......
  • 拯救微信多号党的超实用工具!微信多开、防撤回补丁,微信防撤回,QQ防撤回
    今天给大家推荐一款实用小工具,废话不多说,直接放下载地址 下载地址https://www.hereitis.cn/soft/revokemsgpatcher  安装前,请确保电脑本机杀毒软件已全部关闭!!! R......
  • 【工具推荐】关于《轻笔记》
    这是一款《轻笔记》工具,让瞬间的灵感(短文字、idea列表、图片、链接等)更容易被记录.https://wowule.cc/lightNotes1.创建轻笔记、轻笔记列表2.轻笔记的由来3.轻......
  • linux_命令行助手:(manpages supplement)/获取linux命令用法示例的若干辅助命令行工具
    文章目录​​linux_命令行助手:(manpagessupplement)/获取linux命令用法示例的若干辅助命令行工具(cheat/tldr)​​​​references​​​​我的推荐​​​​ltdr(pythonpi......
  • Spring Boot CLI命令行工具
    SpringBootCLI是一个命令行工具,如果您想快速开发Spring应用程序,可以使用它。它允许您运行Groovy脚本,这意味着您拥有熟悉的类似Java的语法,而无需太多样板代码。您还......
  • Spring Boot 构建工具插件
    SpringBoot为Maven和Gradle提供了构建工具插件。这些插件提供了多种功能,包括可执行jar的打包。本节提供有关这两个插件的更多详细信息,以及在您需要扩展不受支持的构......
  • Docker学习笔记六:Docker安装可视化容器管理工具portainer
    一、准备1、介绍Portainer是Docker的图形化管理工具,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作;包括上传下载镜像,创建容器等操作、事件日志显......
  • ElasticSearch深度分页详解
    1前言ElasticSearch是一个实时的分布式搜索与分析引擎,常用于大量非结构化数据的存储和快速检索场景,具有很强的扩展性。纵使其有诸多优点,在搜索领域远超关系型数据库,但依......
  • Mysql-分页查询
    --从0开始查询,查询3条数据;SELECT*fromstuLIMIT0,3;--每页显示3条数据,查询第1页的数据;SELECT*fromstuLIMIT0,3;--每页显示3条数据,查询第2页的数据;SELECT......