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; /** * 分页基类 * * ...
 
随机推荐
- 更改MySQL数据库目录位置[zz]
			
MYSQL默认的数据文件存储目录为/var/lib/mysql.假如要把目录移到/home/data下需要进行下面几步:1.home目录下建立data目录cd /homemkdir data2.把My ...
 - 微信小程序,开发中几个重要的知识点(加密解密,转发,进入场景,session_key)
			
小程序的授权信息:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/authorize.html 小程序的 ...
 - UITableView 滚动到最后一行
			
if (self.tableView.contentSize.height > self.tableView.frame.size.height) { CGPoint offset = CGPo ...
 - jquery JSON的解析方式实例分享
			
本文以jquery异步获取的数据类型——json对象和字符串为依据,介绍两种方式获取到的结果处理方式. 这里考虑都考虑的是服务器返回的是JSON形式的字符串的形式,对于利用JSONObject等插件封 ...
 - 【Unity】4.4 添加角色控制器
			
分类:Unity.C#.VS2015 创建日期:2016-04-10 一.简介 设计完毕基本的场景后,一般都需要先运行看看效果如何,即先让场景"动起来",以方便观察不同的位置,而不 ...
 - 【小白的CFD之旅】19 来自计算网格的困惑
			
经过一年的忙碌,终于又到了寒假时间,小白又满状态复活了. 这一年小白学了很多的课程,但是一年下来,小白却感觉脑袋里没留下什么东西,貌似什么东西都在考完试的那一刹那全还回给老师了.这一年学习之余,小白仍 ...
 - mysql备份的三种方式详解
			
一.备份的目的 做灾难恢复:对损坏的数据进行恢复和还原需求改变:因需求改变而需要把数据还原到改变以前测试:测试新功能是否可用 二.备份需要考虑的问题 可以容忍丢失多长时间的数据:恢复数据要在多长时间内 ...
 - c++中数据表如何转成业务实体--map和结构体的相互转换
			
应用场景:如何把数据库表中的一行转换成一个业务实体结构体,c#和java中都有实体框架,表到实体的转换很方便,c++中缺少这些框架,但是有一些折中的办法去做.其实问题的本质是:map如何转成结构体. ...
 - SecureCRT常用快捷键
			
Alt + B + B --打开新连接 Ctrl + A --光标移到行首 Ctrl + E --光标移到行末 Ctrl + B --光标前移一个字符 Ctrl + F --光标后移一个字符 Ctrl ...
 - 【运维】Java开发人员掌握的Linux命令
			
作为Java开发人员,要掌握常用的Linux命令. 为什么要写此文,笔者的Linux很厉害?NoNoNo,正因为笔者不熟悉Linux才写此文,以作整理. 最主要的命令 查询命令的简要用法,help 当 ...