//分页对象

@Data
public class PageSimpleVO<T> {//当前页private Integer currentPage;// 总数private Integer totalNumber;// 列表private List<T> list;// 其他数据private Map<String,Object> map;public PageSimpleVO() {}public PageSimpleVO(Integer totalNumber, List<T> list) {this.totalNumber = totalNumber;this.list = list;}public PageSimpleVO(Integer totalNumber, List<T> list, Map<String, Object> map) {this.totalNumber = totalNumber;this.list = list;this.map = map;}public PageSimpleVO(Integer currentPage,Integer totalNumber, List<T> list) {this.currentPage =currentPage;this.totalNumber = totalNumber;this.list = list;}
}

//控制器

@GetMapping("/queryUser")public ResultVo queryUsertHDPage(@Valid UserVo user, @Valid EntyPage page) {Map<String, Object> map = new HashMap<>();map.put("user", user);map.put("page", page);List<User> users= userService.queryUsertHDPage(map);PageSimpleVO<User> userPage = new PageSimpleVO<>(page.getCurrentPage(),page.getTotalNumber(),users);return ResultVOUtils.success(userPage);}

//返回对象

@Data
public class ResultVo<T> {private Integer code;private String message;private T data;
}

//分页对应实体类

@Data
public class EntyPage implements java.io.Serializable {public EntyPage() {}public EntyPage(@NotNull(message = "请选择第几页") @Min(message = "分页参数错误", value = 1) int currentPage, @NotNull(message = "请填写每页查询数量") @Min(value = 1, message = "分页参数不能小于1") @Max(value = 50, message = "分页参数不能大于50") int pageSize) {this.currentPage = currentPage;this.pageSize = pageSize;}/****/private static final long serialVersionUID = 1173808L;/*** 总条数*/private int totalNumber;/*** 当前第几页*/@NotNull(message = "请选择第几页")@Min(message = "分页参数错误", value = 1)private int currentPage;/*** 总页数*/private int totalPage;/*** 每页显示条数*/@NotNull(message = "请填写每页查询数量")@Min(value = 1, message = "分页参数不能小于1")@Max(value = 50, message = "分页参数不能大于50")private int pageSize = 10;/*** 数据库中limit的参数,从第几条开始取*/private int dbOffset;/*** 数据库中limit的参数,一共取多少条*/private int dbSize;/*** 有下一页*/private Boolean hasNextPage;/*** 有上一页*/private Boolean hasLastPage;/*** 下一页*/private Integer nextPage;/*** 上一页*/private Integer lastPage;// 该页是否有下一页.public Boolean getHasNextPage() {hasNextPage = currentPage < totalPage;return hasNextPage;}// 该页是否有上一页.public Boolean getHasLastPage() {hasLastPage = currentPage > 1;return hasLastPage;}// 获取上一页页数public int getLastPage() {if (getHasLastPage()) {lastPage = currentPage - 1;} else {lastPage = currentPage;}return lastPage;}public int getNextPage() {if (getHasNextPage()) {nextPage = currentPage + 1;} else {nextPage = currentPage;}return nextPage;}/*** 根据当前对象中属性值计算并设置相关属性值*/public void count() {// 计算总页数int totalPageTemp = this.totalNumber / this.pageSize;int plus = (this.totalNumber % this.pageSize) == 0 ? 0 : 1;totalPageTemp = totalPageTemp + plus;if (totalPageTemp <= 0) {totalPageTemp = 1;}this.totalPage = totalPageTemp;// 当前页数小于1设置为1if (this.currentPage < 1) {this.currentPage = 1;}// 设置limit的参数this.dbOffset = (this.currentPage - 1) * this.pageSize;this.dbSize = this.pageSize;}public void setTotalNumber(int totalNumber) {this.totalNumber = totalNumber;this.count();}}

/**

  • 返回结果的操作类
    */
public class ResultVOUtils {/*** 成功时返回   * @param data 返回的data对象* @return {@link ResultVo}*/public static ResultVo success(Object data) { ResultVo<Object> resultVO = new ResultVo<Object>();        resultVO.setCode(0);resultVO.setMessage("success");resultVO.setData(data);return resultVO;}/*** 成功时返回* @return {@link ResultVo}*/public static ResultVo success() {Map data = new HashMap();return success(data);}/*** 错误时返回* @param code 错误码* @param message 错误信息* @return {@link ResultVo}*/public static ResultVo error(Integer code, String message) {ResultVo<Object> resultVO = new ResultVo<>();resultVO.setCode(code);resultVO.setMessage(message);Map data = new HashMap();resultVO.setData(data);return resultVO;}public static ResultVo error(Integer code, String message,Object o) {ResultVo<Object> resultVO = new ResultVo<>();resultVO.setCode(code);resultVO.setMessage(message);Map data = new HashMap();resultVO.setData(o);return resultVO;}/*** 错误时返回* @param resultEnum 错误枚举类* @return {@link ResultVo}*/public static ResultVo error(ResultEnum resultEnum) {return error(resultEnum.getCode(), resultEnum.getMessage());}/*** 错误时返回* @param resultEnum 错误枚举类* @param message 错误的信息* @return {@link ResultVo}*/public static ResultVo error(ResultEnum resultEnum, String message) {return error(resultEnum.getCode(), message);}}

java分页及返回数据封装实例相关推荐

  1. java 分页_Spring Boot + MyBatis 如何借助PageHelper插件实现分页效果

    概述 上文中已经介绍了Spring和MyBatis的整合,在上文的基础上我们加入了PageHelper这个插件,来实现MyBatis列表查询的分页效果 PageHelper是啥 PageHelper是 ...

  2. Java之协变返回类型理解和简单实例

    开心一笑 [早上起来,发现天气越来越冷了,白粽子记得要多包几层叶] 视频教程 大家好,我录制的视频<Java之优雅编程之道>已经在CSDN学院发布了,有兴趣的同学可以购买观看,相信大家一定 ...

  3. java分页中显示更多_早期更多失败– Java 8

    java分页中显示更多 快速失败或早期失败是一种软件工程概念,旨在通过在不应该发生的事情发生时立即停止执行来防止复杂问题的发生. 在之前的博客文章和演示中,我将详细介绍这种方法的优点,在此博客文章中, ...

  4. Elasticsearch 使用java分页查询条数超过1w的解决办法 -search_after方式

    1.需求:job跑批每隔5分钟查询es数据取出并进行推送. 问题:原使用java分页查询es.当大于1w时无法取出后续数据造成了数据丢失. 使用scroll_id查询性能消耗太大不适应此场景. es调 ...

  5. java多附件上传 实例demo

    java多附件上传 实例demo <%@ page language="java" import="java.util.*" pageEncoding=& ...

  6. Java.io.File.getPath()方法实例

    转载自  Java.io.File.getPath()方法实例 java.io.File.getPath() 方法将抽象路径名到路径名字符串.为了分离名称的序列所产生的字符串使用默认名称分隔符. 声明 ...

  7. java编写螺旋矩阵讲解_Java如何实现螺旋矩阵 Java实现螺旋矩阵代码实例

    本篇文章小编给大家分享一下Java实现螺旋矩阵代码实例,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时 ...

  8. PHP的分页原理和简单实例

    最新PHP的分页原理和简单实例 以下是三零网为大家整理的最新PHP的分页原理和简单实例的文章,希望大家能够喜欢! 1.前言 分页显示是一种非常常见的浏览和显示大量数据的方法,属于web编程中最常处理的 ...

  9. Java解析接口返回的xml数据

    Java解析接口返回的xml数据 前言 实例 前言    前一段时间,博主在工作遇到了一个小问题,就是调用一个接口后,它的返回值并不是常见的JSON字符串格式,而是返回给你一个xml格式的数据,所有的 ...

  10. Java并发工具辅助类代码实例

    java中的并发工具类 一:等待多线程完成的CountDownLatch CountDownLatch允许一个或多个线程等待其他线程完成操作. packag``.fuzhulei; import ja ...

最新文章

  1. Python使用matplotlib可视化绘图时你可用的颜色有哪些?把色彩可视化出来自己选好了
  2. 边缘计算: 与5G同行,开拓蓝海新市场
  3. video视频播放以及主流浏览器兼容
  4. LogMeIn远程控制
  5. SQL 生成一个日期范围
  6. Android PDF阅读
  7. 【Opengl】Glut下载与环境配置
  8. android两个popwindow背景,Android PopWindow 设置背景亮度的实例
  9. Excel如何取消合并单元格并填充空单元格
  10. python分割图片、合并图片
  11. android build.prop的参数
  12. 零基础学CocosCreator·第六季-常用编程框架和算法
  13. P528 List接口常用实现类的对比及源码分析
  14. sin的导数为cos的几何和公式证明
  15. C++程序员发展方向有哪些?
  16. Pagerduty - prometheus - grafana测试告警的使用方法
  17. 金属学与热处理(第二版)课后习题答案+复习提纲
  18. 海康API返回Json值获取
  19. TC358746A/748XBG:MIPI CSI转RGB、RGB转MIPI CSI 东芝转换芯片 ~
  20. word2013 发布csdn博客

热门文章

  1. 各IT岗位需要的IT职业技能有哪些?
  2. linux服务端 完美世界 下载,完美世界私服教程完美服务端关于TWGM登陆问题解决...
  3. Adapter(适配器)模式
  4. 即时通信聊天工具的原理与设计
  5. cs用服务器运行,如何搭建自己的CS服务器(插件配置篇)
  6. excel 电阻并联计算_25套电气计算软件加24个电气计算表格,从此电气计算不求人!...
  7. 一键将知网CAJ文件转换成带书签的PDF
  8. 各种材料衣服的保养 全面知识分享
  9. cydia多开微信_苹果ios怎么多开微信分身?
  10. 周立功开发板安装linux,极速搭建周立功IMX283A ARM Linux开发环境(1)