java原生的分页工具
@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原生的分页工具的更多相关文章
- jDialects:一个从Hibernate抽取的支持70多种数据库方言的原生SQL分页工具
jDialects(https://git.oschina.net/drinkjava2/jdialects) 是一个收集了大多数已知数据库方言的Java小项目,通常可用来创建分页SQL和建表DDL语 ...
- 基于JAVA原生HTTP请求工具类 httphelper
原文地址;http://lushuifa.iteye.com/blog/2313896 import java.io.BufferedReader; import java.io.BufferedWr ...
- Java原生隐藏字符-工具类
package com.seesun2012.common.util; /** 隐藏字符-工具类 @author seesun2012@163.com */ public class HiddenCh ...
- 分页 工具类 前后台代码 Java JavaScript (ajax) 实现 讲解
[博客园cnblogs笔者m-yb原创, 转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708]http ...
- JAVA分页工具类
最近写了一个代码生成工具,分享下该工具下的分页工具 一.分页工具类 package com.qy.code.api.page; import java.io.Serializable; import ...
- PageUtil.java分页工具类
package com.chabansheng.util; /** * 分页工具类 * @author Administrator * */ public class PageUtil { /** * ...
- android 学习随笔二十七(JNI:Java Native Interface,JAVA原生接口 )
JNI(Java Native Interface,JAVA原生接口) 使用JNI可以使Java代码和其他语言写的代码(如C/C++代码)进行交互. 问:为什么要进行交互? 首先,Java语言提供的类 ...
- 【Java】Java原生的序列化和反序列化
写一个Java原生的序列化和反序列化的DEMO. 需序列化的类: package com.nicchagil.nativeserialize; import java.io.Serializable; ...
- Redis 工具类 java 实现的redis 工具类
最近了解了一下非关系型数据库 redis 会使用简单的命令 在自己本地电脑 使用时必须先启动服务器端 在启动客户端 redis 简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内 ...
- 最全的Java操作Redis的工具类,使用StringRedisTemplate实现,封装了对Redis五种基本类型的各种操作!
转载自:https://github.com/whvcse/RedisUtil 代码 ProtoStuffSerializerUtil.java import java.io.ByteArrayInp ...
随机推荐
- Miller-Rabin 与 Pollard-Rho 算法学习笔记
前言 Miller-Rabin 算法用于判断一个数 \(p\) 是否是质数,若选定 \(w\) 个数进行判断,那么正确率约是 \(1-\frac{1}{4^w}\) ,时间复杂度为 \(O(\log ...
- [0]为什么是SpinalHDL-Spinal简介
[0]为什么是SpinalHDL-Spinal简介 1. verilog/VHDL打咩 稍微先说两句SpinalHDL,硬件描述语言(HDL)分为verilog/VHDL和其他(雾),不过确实是这样, ...
- Springboot+Dplayer+RabbitMQ实现视频弹幕延时入库
编写之初,在网上找了很多关于springboot整合dplayer实现弹幕的方式,发现案例很少,然后自己就着手写一个小项目,分享给大家~ 注:Dplayer版本:v1.22.2 流程:前端自定义弹幕发 ...
- Java基础学习笔记-类与对象
对象 名称唯一 属性.数据区(值) 方法.功能 类 在软件中,类是一个模板,定义了一类事物的状态和行为 类是一种抽象的复合数据类型 类与对象的关系,这个跟JS也差不多 类和对象之间是抽象和具体的关系. ...
- 视图,触发器,存储过程,流程控制等MySQL小知识点
视图,触发器,存储过程,流程控制等MySQL小知识点 一.SQL注入问题 登录: import pymysql conn = pymysql.connect( host='127.0.0.1', po ...
- 《深入理解Java虚拟机》第三章读书笔记(二)——HotSpot垃圾回收算法实现(OopMap,安全点安全区域,卡表,写屏障,三色标记算法)
系列文章目录和关于我 前面<深入理解Java虚拟机>第三章读书笔记(一)--垃圾回收算法我们学习了垃圾回收算法理论知识,下面我们关注下HotSpot垃圾回收算法的实现,分为以下几部分 对象 ...
- Thymeleaf中判断Security权限 - SpringBoot
参考:https://blog.csdn.net/perfect_red/article/details/110821582
- 线程基础知识15-StampedLock
1 简介 StampedLock是JDK1.8中新增的一个读写锁,也是对JDK1.5中的读写锁ReentrantReadWriteLock的优化.在原先读写锁的基础上新增了一种叫乐观读(Optimis ...
- (原创)【B4A】一步一步入门03:APP名称、图标等信息修改
一.前言 上篇 (原创)[B4A]一步一步入门02:可视化界面设计器.控件的使用 中我们已经了解了B4A程序的基本框架,现在我们还进一步讲解. 本篇文章会讲解如何修改APP的名称.图标等信息,以让一个 ...
- 视觉SLAM:滑动窗口
1.SLAM问题 1.1建模 考虑某个状态 \(\xi\),以及一次与该变量相关的观测 \(r_{i}\).由于噪声存在,观测服从概率分布 \(p(r_{i}|\xi)\).多个观测时,各个测量值相互 ...