数据分页展示

package cn.gzsxt.util;

import java.util.List;

/**
* 分页封装
*/
public class PageUtil {

/**
* 1 数据里面的数据总行数
*/
private int rowcount;// 数据里面的数据总行数
/**
* 2 一页多少行数据
*/
private int pagesize=10;// 一页多少行数据
/**
* 3 查询起始行 limit startrow,pagesize;
*/
private int startrow;//查询起始行 limit startrow,pagesize;
/**
* 4 当前点击的导航
*/
private int currnav;//当前点击的导航
/**
* 5 页面维护的固定导航个数
*/
private int navnum;//页面维护的固定导航个数
/**
*6 页面数据整体导航个数
*/
private int navcount;//页面数据整体导航个数 总共多少页
/**
*7 页面展示的起始导航
*/
private int begin;//页面展示的起始导航
/**
* 8 页面维护展示的结束导航
*/
private int end;//页面维护展示的结束导航
/**
* 9 上一页
*/
private int prev;// 上一页
/**
* 10 下一页
*/
private int next;//下一页
/**
* 11 首页
*/
private int first=1;//首页
/**
* 12尾页
*/
private int last;//尾页
/**
* 13 存放分页的数据
*/
private List pageData;//存放分页的数据
/**
*
* <p>Description: </p>
* @param rowcount 数据总行数
* @param pagesize 一页显示多少行数据
* @param currnav 当前点击的导航
* @param navnum 页面维护的固定导航个数
*/
public PageUtil(int rowcount, int pagesize, int currnav, int navnum) {
super();
this.rowcount = rowcount;
this.pagesize = pagesize;
this.currnav = currnav;
this.navnum = navnum;

// 总共多少页 navcount 数据里面的数据总行数/一页多少行数据 ceil
this.navcount = (int)Math.ceil((rowcount*1.0)/pagesize);
this.last = this.navcount ;
//大于第一页 增强容错性
this.currnav = Math.max(this.first,currnav);//维护小于第一页 维护固定第一页 取最大
this.currnav =Math.min(this.currnav, this.last);//超过最后一页,维护最后一页 取最小

//3 当前页的起始行 startrow (当前点击的导航页 -1)*一页多少行数据
this.startrow= (currnav-1)*pagesize;

//处理上一页
this.prev = Math.max(this.first, currnav -1);
//处理下一页 如果当前导航页是最后一页
this.next = Math.min(this.navcount, currnav +1);

// begin 页面展示的起始导航
this.begin =Math.max(1, currnav- navnum/2) ;
//end 页面展示的结束导航
this.end = Math.min(navcount, begin + navnum-1);

//当前导航是76 -10 +1 =67 1 -10+1 = -8
if((this.end-this.begin)<(this.navnum-1) ){
this.begin = Math.max(1, this.last- navnum+1);
}
}

public PageUtil() {
super();
}

public int getRowcount() {
return rowcount;
}
public void setRowcount(int rowcount) {
this.rowcount = rowcount;
}
public int getPagesize() {
return pagesize;
}
public void setPagesize(int pagesize) {
this.pagesize = pagesize;
}
public int getStartrow() {
return startrow;
}
public void setStartrow(int startrow) {
this.startrow = startrow;
}
public int getCurrnav() {
return currnav;
}
public void setCurrnav(int currnav) {
this.currnav = currnav;
}
public int getNavnum() {
return navnum;
}
public void setNavnum(int navnum) {
this.navnum = navnum;
}
public int getNavcount() {
return navcount;
}
public void setNavcount(int navcount) {
this.navcount = navcount;
}
public int getBegin() {
return begin;
}
public void setBegin(int begin) {
this.begin = begin;
}
public int getEnd() {
return end;
}
public void setEnd(int end) {
this.end = end;
}
public int getPrev() {
return prev;
}
public void setPrev(int prev) {
this.prev = prev;
}
public int getNext() {
return next;
}
public void setNext(int next) {
this.next = next;
}
public int getFirst() {
return first;
}
public void setFirst(int first) {
this.first = first;
}
public int getLast() {
return last;
}
public void setLast(int last) {
this.last = last;
}
public List getPageData() {
return pageData;
}
public void setPageData(List pageData) {
this.pageData = pageData;
}

时间: 2024-12-15 06:51:06

数据分页展示的相关文章

ssh整合问题总结--使用HibernateTemplate实现数据分页展示

在进行大量的数据展示时,必须要使用分页查询,第一次使用在SSH框架整合中使用分页查询,遇到了一些问题,下面以我练习的项目为例详细介绍,如何在Spring+hibernate(+action)的环境下完成数据的分页查询. 在utils包下新建一个pageBean(这个实体类用于封装当前页面的数据集合,以及和page相关的参数): public class PageBean<T> { private int page;//当前页数 private int totalCount;//总记录数 pri

angulatJs 前端数据分页展示——例

注:css用的是amazeui html: ···<div style="height:500px;overflow: auto;"> <table class="am-table" style="width:100%;padding: 10px 30px "> <tr> <td>序号</td> <td>姓名</td> <td>电话</td>

【知了堂学习笔记】JSP页面数据分页实现(一)——分页概念以及主流数据库的分页查询

一.分页简介 1.分页,就是一种将数据库里的数据一部分展示给用户的技术.为什么要这样做呢?因为一般来说用户在查询时数据是非常多的,当一个页面不能显示所有数据时,我们就要对查询的数据进行分页,就像我们的书本分成一页一页一样.最简单的例子就是百度,当你百度时,成千上万的数据,并不是呈现在一个页面的. 2.分页的实现方式 1)假分页(不推荐):什么是假分页呢?假分页就是一次性将数据库里的数据全部取出来,存储在页面中,然后再将数据分别展示出来.这种假分页在数据少的还可以玩玩,当数据多起来的时候,这种方式

大数据分页解决方案

1 编写目的 解决系统需要检索大数据列表时的性能问题,而提出的分页方案 2 术语.定义和缩略语 3 大数据量检索的性能问题分析 大数据量检索的性能存在问题,问题主要包括 3.1 客户端在IE或者cs端数据量过大会导致IE变慢,甚至死锁 现象: IE浏览器崩溃 浏览器白板,停止响应 3.2 客户端--web服务器之间的数据传输量大会导致客户端速度变慢,效率降低 现象: IE浏览器长期在等待时白板 IE 浏览器操作慢 3.3 中间层构造大数据列表会导致中间层性能降低 现象: 并发访问多时,应用服务器

【干货】再上数据分页控件 ━ 更加灵活,更加实用-提供源码

再上数据分页控件-更加灵活,更加实用 关于数据分页的文章太多了,各有各的一套方案,但大多都很类似,要么使用存储过程,要么直接使用代码进行分页.各种方案分页的效率也不尽相同,我们不一定要找一个最高效的(根据实际的项目情况),找一个最合适的就OK了.下面我要谈的分页控件非常灵活,可以支持任意类型的数据库,同时可以支持存储过程或代码分页(会自动判断),也支持多表的分页,非常的方便.对于数据分页的相关文章,在我的博客中可以找到很多,下面我做一个简单的汇总,方便大家查阅. 1. 原创企业级控件库之大数据量

数据分页处理系列之一:Oracle表数据分页检索SQL

  关于Oracle数据分页检索SQL语法,网络上比比皆是,花样繁多,本篇也是笔者本人在网络上搜寻的比较有代表性的语法,绝非本人原创,贴在这里,纯粹是为了让"数据分页专题系列"看起来稍微完整和丰满一些,故先在这里特别声明一下,以免招来骂声一片! 先介绍两个比较有代表性的数据分页检索SQL实例. 无ORDER BY排序的写法.(效率最高) (经过测试,此方法成本最低,只嵌套一层,速度最快!即使检索的数据量再大,也几乎不受影响,速度依然!) SELECT * FROM (SELECT RO

jquery分页展示控件:kkpager

kkpager v1.2 js分页展示控件,传入简单参数就能使用的分页效果控件 准备工作,引入js.css <script type="text/javascript" src="../lib/jquery-1.10.2.min.js"></script> <script type="text/javascript" src="../src/kkpager.min.js"></scri

快速数据列表展示(编辑中)

在页面数据和控件的自动交换机制中,我们通过PageX实现了一种快速的控件和数据交换机制,能够方便快捷地完成数据库中的数据记录的管理.一般情况下,在进入这个编辑页面之前,还应该有另外一个页面,可以一次展示多条数据记录的信息.在这个数据的列表界面中,可以进行各种操作,如删除.跳转.编辑等.这个数据列表页面不仅可以按照数据库的分类展示数据,也可以根据需要进行展示,如按指定字段排序.根据查询结果展示.分页展示等. 用什么来展示数据列表? 由于数据列表页面在数据管理中十分常用,因此,在微软的开发工具的发展

Servlet——实现数据分页显示

Servlet实现数据分页显示 1.数据分页的应用 在很多情况下,Web网页的显示结果都很多,不可能在一个页面完全显示出来,这时候就需要用到数据分页 比如我们很熟悉的Google搜索结果: 那么怎么通过Servlet实现这个功能呢? 2.Servlet连接数据库 首先我们的数据是存放在数据库中,那么就需要Servlet去连接数据库,从而获取数据. Servlet连接数据库的步骤同JavaSE连接数据库的操作一样其实Servlet本身也就是Java. 首先需要准备Java连接数据库的相关jar包不