@NoArgsConstructor
@Data //生成 空参构造 get、set、 tostring、 equals、 hascode
public class PageUtils<T> { private int totalCount;//总记录数 依赖查询,外界传入
private int pageSize;//页面容量 依赖外界传入
private int currentPage;//当前页码 依赖外界传入
private int totalPage;//总页数 √
private int startIndex;//每一页的起始索引
private int prePage;//上一页 √
private int nextPage;//下一页 √
private List<T> list;//分页查询出的数据本身 public PageUtils(int totalCount, int pageSize, String currentPage) {
this.totalCount = totalCount;
this.pageSize = pageSize;
initCurrentPage(currentPage);
initTotalPage();
initStartIndex();
initPrePage();
initNextPage();
} //初始化当前页码
public void initCurrentPage(String currentPage) {
if(currentPage == null) {
//第一次加载页面时没有当前页码,则默认为1
this.currentPage = 1;
} else {
//后续操作分页工具条,都是基于当前页在操作的
this.currentPage = Integer.parseInt(currentPage);
}
} //初始化每一页的起始索引
public void initStartIndex() {
this.startIndex = (this.currentPage - 1) * this.pageSize;
} //初始化上一页
public void initPrePage() {
if(this.currentPage == 1) {
//如果本身就是第一页,则前一页依然是第一页
this.prePage = 1;
} else {
//如果是2到更大的页码,则有前一页
this.prePage = this.currentPage - 1;
}
} //初始化总页数
public void initTotalPage() {
this.totalPage = (this.totalCount % this.pageSize == 0) ? (this.totalCount / this.pageSize) : (this.totalCount / this.pageSize + 1);
} //初始化下一页
public void initNextPage() {
if(this.currentPage == this.totalPage) {
//如果本身就是最后一页,则下一页依然是最后一页
this.nextPage = totalPage;
} else {
//如果是倒数第二页以及以前,则有下一页
this.nextPage = this.currentPage + 1;
}
} }

  

java原生的分页工具的更多相关文章

  1. jDialects:一个从Hibernate抽取的支持70多种数据库方言的原生SQL分页工具

    jDialects(https://git.oschina.net/drinkjava2/jdialects) 是一个收集了大多数已知数据库方言的Java小项目,通常可用来创建分页SQL和建表DDL语 ...

  2. 基于JAVA原生HTTP请求工具类 httphelper

    原文地址;http://lushuifa.iteye.com/blog/2313896 import java.io.BufferedReader; import java.io.BufferedWr ...

  3. Java原生隐藏字符-工具类

    package com.seesun2012.common.util; /** 隐藏字符-工具类 @author seesun2012@163.com */ public class HiddenCh ...

  4. 分页 工具类 前后台代码 Java JavaScript (ajax) 实现 讲解

    [博客园cnblogs笔者m-yb原创, 转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708]http ...

  5. JAVA分页工具类

    最近写了一个代码生成工具,分享下该工具下的分页工具 一.分页工具类 package com.qy.code.api.page; import java.io.Serializable; import ...

  6. PageUtil.java分页工具类

    package com.chabansheng.util; /** * 分页工具类 * @author Administrator * */ public class PageUtil { /** * ...

  7. android 学习随笔二十七(JNI:Java Native Interface,JAVA原生接口 )

    JNI(Java Native Interface,JAVA原生接口) 使用JNI可以使Java代码和其他语言写的代码(如C/C++代码)进行交互. 问:为什么要进行交互? 首先,Java语言提供的类 ...

  8. 【Java】Java原生的序列化和反序列化

    写一个Java原生的序列化和反序列化的DEMO. 需序列化的类: package com.nicchagil.nativeserialize; import java.io.Serializable; ...

  9. Redis 工具类 java 实现的redis 工具类

    最近了解了一下非关系型数据库 redis 会使用简单的命令 在自己本地电脑 使用时必须先启动服务器端 在启动客户端 redis 简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内 ...

  10. 最全的Java操作Redis的工具类,使用StringRedisTemplate实现,封装了对Redis五种基本类型的各种操作!

    转载自:https://github.com/whvcse/RedisUtil 代码 ProtoStuffSerializerUtil.java import java.io.ByteArrayInp ...

随机推荐

  1. 传播问卷调查数据不够?自己生成假数据!Python编程一对一教学

    问卷调查 Excel 样式 原文件下载 生成代码 序号 直接 range 生成即可. 提交答卷时间 import time time_str = time.strftime('%Y/%m/%d %H: ...

  2. MarkDown语法----纯文本格式的标记语言

    一.基本语法 1.标题 一级标题: "# + 空格 + 标题内容" 二级标题: "## + 空格 + 标题内容" .... 2.字体 粗体: "**+ ...

  3. centos7.6安装本地yum源

    centos7.6安装本地yum源 前言:文章内容可能会因环境不同而有所差异,所谓集思广益说不定灵感就来了呢; 文章初衷旨在交流学习.记录个人成长,如果能帮助到您,那就点个赞噢. 环境说明: 1.本实 ...

  4. STM32F103和AIR32F103的FreeRTOS中断优先级

    关于 Arm Cortex M 系列内核的中断优先级 https://community.arm.com/arm-community-blogs/b/embedded-blog/posts/cutti ...

  5. echarts图例过多,折线过多颜色不知道怎么分配怎么办??优化如下

    优化一:很简单,echarts自身支持legend图例分页,加了分页就优化了图例过多情况. legend['type']: 'scroll', // 添加这一行代码即可实现图例分页功能 option ...

  6. 实操记录之-----Ant Design of Vue 增强版动态合并单元格,自动根据数据进行合并,可自定义横纵向合并

    前几天搞了个简易版的动态合并单元格 但是需求有变化,就只能稍微改改了~~ 欢迎路过的各位大佬指出我代码的问题~~~~ 另: 代码执行效率不是很高,如果需要大量渲染更多数据建议可以直接使用原生 < ...

  7. jjq(友链:https://tg.hszxoj.com/user/475)

         

  8. Redis 正则扫描key并删除

    扫描key /** * @param key * @return * @Description: 通过Scan的方式迭代key */ public Set<String> scanKeys ...

  9. postgresql添加mysql_fdw测试过程

    请先确认已经安装好mysql_fdw,如果没有配置好点这:https://www.cnblogs.com/ohsolong/p/13041989.html 1.切换至postgres用户,输入密码登录 ...

  10. Pytest插件pytest-assume多重断言

    Pytest插件pytest-assume多重断言 背景 import pytest def test_assume1(): assert 1 == 2 print('hello') assert 2 ...