java - 分页类
pager.java
package com.jspnews.util; import java.io.Serializable;
import java.util.List; /**
*
* <b> 分页通用类 </b>
*
* @author kangxu
* @param <T>
*
*/
public class Pager { /**
*
*/
private static final long serialVersionUID = 4542617637761955078L; /**
* currentPage 当前页
*/
private int currentPage = 1;
/**
* pageSize 每页大小
*/
private int pageSize = 10;
/**
* pageTotal 总页数
*/
private int pageTotal;
/**
* recordTotal 总条数
*/
private int recordTotal = 0;
/**
* previousPage 前一页
*/
private int previousPage;
/**
* nextPage 下一页
*/
private int nextPage;
/**
* firstPage 第一页
*/
private int firstPage = 1;
/**
* lastPage 最后一页
*/
private int lastPage; /**
* 拼接url
*/
private String url = "?p="; public String getUrl() {
return url;
} public void setUrl(String url) {
this.url = url;
} // 以下set方式是需要赋值的
/**
* 设置当前页 <br>
*
* @author kangxu
*
* @param currentPage
*/
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
} /**
* 设置每页大小,也可以不用赋值,默认大小为10条 <br>
*
* @author kangxu
*
* @param pageSize
*/
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
} /**
* 设置总条数,默认为0 <br>
*
* @author kangxu
*
* @param recordTotal
*/
public void setRecordTotal(int recordTotal) {
this.recordTotal = recordTotal;
otherAttr();
} /**
* 设置其他参数
*
* @author kangxu
*
*/
public void otherAttr() {
// 总页数
this.pageTotal = this.recordTotal % this.pageSize > 0 ? this.recordTotal / this.pageSize + 1
: this.recordTotal / this.pageSize;
// 第一页
this.firstPage = 1;
// 最后一页
this.lastPage = this.pageTotal;
// 前一页
if (this.currentPage > 1) {
this.previousPage = this.currentPage - 1;
} else {
this.previousPage = this.firstPage;
}
// 下一页
if (this.currentPage < this.lastPage) {
this.nextPage = this.currentPage + 1;
} else {
this.nextPage = this.lastPage;
}
} public int getCurrentPage() {
return currentPage;
} public int getPageSize() {
return pageSize;
} public int getPageTotal() {
return pageTotal;
} public int getRecordTotal() {
return recordTotal;
} public int getPreviousPage() {
return previousPage;
} public int getNextPage() {
return nextPage;
} public int getFirstPage() {
return firstPage;
} public int getLastPage() {
return lastPage;
} @Override
public String toString() {
return "Pager [currentPage=" + currentPage + ", pageSize=" + pageSize + ", pageTotal=" + pageTotal
+ ", recordTotal=" + recordTotal + ", previousPage=" + previousPage + ", nextPage=" + nextPage
+ ", firstPage=" + firstPage + ", lastPage=" + lastPage + ", url=" + url + "]";
} }
test
package com.jspnews.test;
import com.jspnews.util.Pager;
public class TestPager {
public static void main(String[] args) {
Pager pager = new Pager();
pager.setCurrentPage(-1);
pager.setPageSize(4);
pager.setRecordTotal(21);
System.out.println(pager.getPreviousPage() + "," + pager.getNextPage());
pager.setCurrentPage(0);
pager.setPageSize(4);
pager.setRecordTotal(21);
System.out.println(pager.getPreviousPage() + "," + pager.getNextPage());
pager.setCurrentPage(1);
pager.setPageSize(4);
pager.setRecordTotal(15);
System.out.println(pager.getPreviousPage() + "," + pager.getNextPage());
pager.setCurrentPage(2);
pager.setPageSize(4);
pager.setRecordTotal(21);
System.out.println(pager.getPreviousPage() + "," + pager.getNextPage());
pager.setCurrentPage(3);
pager.setPageSize(4);
pager.setRecordTotal(21);
System.out.println(pager.getPreviousPage() + "," + pager.getNextPage());
pager.setCurrentPage(4);
pager.setPageSize(4);
pager.setRecordTotal(21);
System.out.println(pager.getPreviousPage() + "," + pager.getNextPage());
pager.setCurrentPage(5);
pager.setPageSize(4);
pager.setRecordTotal(21);
System.out.println(pager.getPreviousPage() + "," + pager.getNextPage());
pager.setCurrentPage(6);
pager.setPageSize(4);
pager.setRecordTotal(21);
System.out.println(pager.getPreviousPage() + "," + pager.getNextPage());
pager.setCurrentPage(7);
pager.setPageSize(4);
pager.setRecordTotal(21);
System.out.println(pager.getPreviousPage() + "," + pager.getNextPage());
}
}
result
1,0
1,1
1,2
1,3
2,4
3,5
4,6
5,6
6,6
java - 分页类的更多相关文章
- Java分页类 Page
import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Iterator; ...
- [Java] 一种好的JAVA分页实现
喃都不说了,贴代码,意思都在代码里面了 Page.java //分页类.定义分页字段信息,供前台页面使用 package com.core.common; import java.util.List; ...
- Java 动态分页类
动态分页类: Cls_page.java package pagination; public class Cls_page { private int nums;// 总条目数 private i ...
- Mybatis包分页查询java公共类
Mybatis包分页查询java公共类 分页----对于数据量非常大的查询中.是不可缺少的. mybatis底层的分页sql语句因为须要我们自己去手动写.而实现分页显示的时候我们须要依据分页查询条 ...
- java分页三个类 PageBean ResponseUtil StringUtil
package ssmy.page; /** * 分页类 * @author Jesse * */public class PageBean { private int page;//第几页 priv ...
- 数据你把它的金额-JAVA分页
数据量你造吗-JAVA分页 原创地址: http://www.cnblogs.com/Alandre/ (泥沙砖瓦浆木匠),须要转载的,保留下! Thanks 学习的心态第一,解行要对应. 事实 ...
- java 分页模型的模板
分页sql select top 每页要显示的记录数 * from 表名 where 主键 not in (select top (每页显示的记录数*(当前页-1)) 主键 from 表名 ) sel ...
- 数据量你造吗-JAVA分页
原创地址: http://www.cnblogs.com/Alandre/ (泥沙砖瓦浆木匠),需要转载的,保留下! Thanks 学习的心态第一,解行要相应.其实<弟子规>在“余力 ...
- 一个方便的java分页算法
一个好用的java分页算法,代码如下,只需要分页参数继承Pageable类就可以很方便分页了 package cn.com.base.common.pagination; /** * 分页基类 * * ...
随机推荐
- Java:concurrent包下面的Map接口框架图(ConcurrentMap接口、ConcurrentHashMap实现类)
Java集合大致可分为Set.List和Map三种体系,其中Set代表无序.不可重复的集合:List代表有序.重复的集合:而Map则代表具有映射关系的集合.Java 5之后,增加了Queue体系集合, ...
- CentOS 7 安装java
我喜欢在centos中安装openjdk版本的java,无他,方便.虽然有一些不同之处,但不影响使用. 1.查询: yum search openjdk ,结果如下: java-1.6.0-openj ...
- sqlite第三方类库:FMDB使用
转自:http://www.cnblogs.com/wuhenke/archive/2012/02/07/2341656.html 本文转自一位台湾ios开发者的blog,由于blog地址被墙掉,转发 ...
- Viewpager 的相关总结
1.修改切换item的时间 public class FixedSpeedScroller extends Scroller { ; public FixedSpeedScroller(Context ...
- HTTP模块SuperAgent
superagent它是一个强大并且可读性很好的轻量级ajaxAPI,是一个关于HTTP方面的一个库,而且它可以将链式写法玩的出神入化. var superagent = require('super ...
- 自己定义转场动画--Swift3.0版本号
转场动画这事.说简单也简单.能够通过presentViewController:animated:completion:和dismissViewControllerAnimated:completio ...
- 菜鸟学Java(二十)——你知道long和Long有什么区别吗?
Java中数据类型分两种: 1.基本类型:long,int,byte,float,double 2.对象类型:Long,Integer,Byte,Float,Double其它一切java提供的,或者你 ...
- (原创)一个简洁通用的调用DLL函数的帮助类
本次介绍一种调用dll函数的通用简洁的方法,消除了原来调用方式的重复与繁琐,使得我们调用dll函数的方式更加方便简洁.用过dll的人会发现c++中调用dll中的函数有点繁琐,调用过程是这样的:在加载d ...
- python--使用MySQL数据库
1.安装mysqlsudo apt-get install mysql-server Sudo apt-get install mysql-client 2.安装MySQL-python驱动sudo ...
- 使用windowAnimations定义Activity及Dialog的进入退出效果
看了android的源代码和资源文件,终于明白如何去修改设置Dialog和Activity的进入和退出效果了.设置Dialog首先通过getWindow()方法获取它的窗口,然后通过getAttrib ...