`
tobackfurture
  • 浏览: 2210 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

分页util类,方便自己使用,

J# 
阅读更多
package myownthread;

/**
* 分页
*/
public class Page {
public static final int PAGESIZE = 20;
/**
* 总记录数
*/
private int totalRowsAmount;
/**
* 是否设置总记录数
*/
private boolean rowsAmountSet;
/**
* 每页记录数
*/
private int pageSize = PAGESIZE;
/**
* 当前页
*/
private int currentPage = 1;
/**
* 下一页
*/
private int nextPage;
/**
* 上一页
*/
private int previousPage;
/**
* 总页数
*/
private int totalPages;
/**
* 是否有下一页
*/
private boolean hasNext;
/**
* 是否有上一页
*/
private boolean hasPrevious;

/**
* 起始记录数
*/
private int pageStartRow;
/**
* 结束记录数
*/
private int pageEndRow;

/**
* 构造函数(总记录数)
*/

public Page(int totalRows) {
setTotalRowsAmount(totalRows, 0);
}

public Page(int totalRows, int pageSize) {
setTotalRowsAmount(totalRows, pageSize);
}

public Page() {
}

/**
* @param totalRowsAmount
*            The totalRowsAmount to set.
*/
public void setTotalRowsAmount(int i, int j) {
if (pageSize == 0 || j == 0) {
pageSize = PAGESIZE;
} else {
pageSize = j;
}
totalRowsAmount = i;
totalPages = (totalRowsAmount % pageSize == 0) ? totalRowsAmount
/ pageSize : totalRowsAmount / pageSize + 1;
if (!this.rowsAmountSet) {
setCurrentPage(1);
this.rowsAmountSet = true;
}

}

/**
* @param currentPage
*            The currentPage to set.
*/
public void setCurrentPage(int i) {
if (i < 1) {
i = 1;
System.out.println("sdfsssssssss");
}
currentPage = i;
nextPage = currentPage + 1;
previousPage = currentPage - 1;// 获得上一页

if (currentPage * pageSize < totalRowsAmount) {
pageEndRow = currentPage * pageSize;
pageStartRow = pageEndRow - pageSize + 1;
} else {
pageEndRow = totalRowsAmount;
totalPages = (totalRowsAmount % pageSize == 0) ? totalRowsAmount
/ pageSize : totalRowsAmount / pageSize + 1;
pageStartRow = pageSize * (totalPages - 1) + 1;
if (pageStartRow < 0) {// 修改了当totalRowsAmount =0,currentPage=1 的错误
pageStartRow = 0;
}
}
if (nextPage > totalPages) {
hasNext = false;
} else {
hasNext = true;
}
if (previousPage == 0) {
hasPrevious = false;
} else {
hasPrevious = true;
}
}

/**
* @return Returns the currentPage.
*/
public int getCurrentPage() {
return currentPage;
}

public boolean isHasNext() {
return hasNext;
}

public boolean isHasPrevious() {
return hasPrevious;
}

/**
* @return Returns the nextPage.
*/
public int getNextPage() {
return nextPage;
}

/**
* @return Returns the pageSize.
*/
public int getPageSize() {
return pageSize;
}

/**
* @return Returns the previousPage.
*/
public int getPreviousPage() {
return previousPage;
}

/**
* @return Returns the totalPages.
*/
public int getTotalPages() {
return totalPages;
}

/**
* @return Returns the totalRowsAmount.
*/
public int getTotalRowsAmount() {
return totalRowsAmount;
}

/**
* @param hasNext
*            The hasNext to set.
*/
public void setHasNext(boolean b) {
hasNext = b;
}

/**
* @param hasPrevious
*            The hasPrevious to set.
*/
public void setHasPrevious(boolean b) {
hasPrevious = b;
}

/**
* @param nextPage
*            The nextPage to set.
*/
public void setNextPage(int i) {
nextPage = i;
}

/**
* @param pageSize
*            The pageSize to set.
*/
public void setPageSize(int i) {
pageSize = i;
}

/**
* @param previousPage
*            The previousPage to set.
*/
public void setPreviousPage(int i) {
previousPage = i;
}

/**
* @param totalPages
*            The totalPages to set.
*/
public void setTotalPages(int i) {
totalPages = i;
}

/**
* @return Returns the pageEndRow.
*/
public int getPageEndRow() {
return pageEndRow;
}

/**
* @return Returns the pageStartRow.
*/
public int getPageStartRow() {
return pageStartRow;
}

/**
* @param pageStartRow
*            The pageStartRow to set.
*/
public void setPageStartRow(int pageStartRow) {
this.pageStartRow = pageStartRow;
}

// public String getDescription() {
// String description = "Total:" + this.getTotalRowsAmount() + " items "
// + this.getTotalPages() + " pages";
// this.currentPage+" Previous "+this.hasPrevious +
// " Next:"+this.hasNext+
// " start row:"+this.pageStartRow+
// " end row:"+this.pageEndRow;
// return description;
// }

public String getDescription() {
String description = "Total:" + this.getTotalRowsAmount() + " items "
+ this.getTotalPages() + " pages,Current page:"
+ this.currentPage + " Previous " + this.hasPrevious + " Next:"
+ this.hasNext + " start row:" + this.pageStartRow
+ " end row:" + this.pageEndRow;
return description;
}

public static void main(String args[]) {
Page pc = new Page();
System.out.println(pc.getPageSize());
// pc.setPageSize(4);
pc.setTotalRowsAmount(60, 0);
pc.setCurrentPage(-10);
System.out.println(pc.getTotalPages() + "aaa " + pc.hasPrevious + "  "
+ pc.hasNext);
System.out.println(pc.getPageStartRow() + "   " + pc.getPageEndRow());

}
}
分享到:
评论

相关推荐

    java分页工具类

    使用Java分页工具类的好处在于,它可以简化分页的实现,让开发者更专注于业务逻辑,而不是分页的具体实现细节。同时,这样的工具类也可以被复用在多个项目中,提高代码的复用率和开发效率。 总之,Java分页工具类是...

    oracle 分页类文件

    在实际使用中,开发者可以通过`ShowPage`类设置分页参数,然后调用其内部的查询方法,由`ShowSQL.java`生成对应的SQL语句,最后执行查询并返回结果。这个过程中,`StringUtil.java`起到辅助作用,确保SQL的正确性和...

    自己整理的java分页大全

    配合Action中的分页对象,例如`com.opensymphony.xwork2.util.PaginationHelper`,开发者可以在Action中进行分页计算,然后在视图层使用Struts2的标签进行渲染。此外,还有一些第三方插件,如Struts2-CRUD或Struts2-...

    叶子asp分页类0.12

    名称: 叶子asp分页类 Name: ShowoPage(vbs class) RCSfile: ReadMe.txt Revision: 0.12.20051114.f Author: Yehe(叶子) Released: 2005-11-14 09:40:13 Descript: ASP分页类,支持access/mssql/mysql/sqlite ...

    浅谈java分页三个类 PageBean ResponseUtil StringUtil

    PageBean、ResponseUtil 和 StringUtil 三个类的组合使用,可以实现高效的分页处理和数据响应。通过这些工具类,我们可以轻松地实现复杂的业务逻辑,从而提高开发效率和代码质量。 在 Java 开发中,分页处理是一个...

    AnyFo - Util - AnyFoDao :Spring + Hibernate整合通用的DAO层类

    本类封装了Spring提供的HibernateTemplate,从提供了对数据的各种操作,因此,本类尤其适合用Spring + Hibernate整合后进行系统开 发时使用。 AnyFoAction功能概述 AnyFoDao中的那个类,提供多个方法来对...

    mysql、sqlserver、oracle分页,java分页统一接口实现

    MySQL、SQL Server、Oracle 分页及 Java 分页统一接口实现 MySQL、SQL Server、Oracle 分页是关系数据库管理系统中最基本也是最常用的操作之一,而 Java ...这些技术可以帮助开发者更方便地实现数据库操作和分页功能。

    thinkphp ajax 分页

    1. **导入分页类**:首先需要导入分页类`ORG.Util.Page`,以便在控制器中使用分页功能。 ```php import("ORG.Util.Page"); ``` 2. **构造SQL查询语句**: - 在提供的代码片段中,可以看到一个复杂的SQL查询语句...

    韩顺平SqlHelper,DBUtil工具类

    DBUtil工具类则更进一步,它通常包含更多的数据库操作辅助方法,如分页查询、事务管理、存储过程调用等。DBUtil可能会扩展SqlHelper的功能,提供更加便利的API来处理常见的数据库任务。例如,它可能有一个`...

    分页技术、批量插入查找

    2. 客户端分页:前端使用JavaScript或其他客户端技术,如React或Vue.js,根据用户滚动或点击页码事件动态请求数据。这种方式需要服务器提供API接口,返回JSON格式的分页数据。 批量插入查找: 批量插入是指一次性...

    spring+struts+hibernate实现分页

    工程结构清晰,按照标准的Maven或Gradle目录结构组织,包括src目录下的action、dao、entity、pages和util等包,分别存放Action类、DAO接口及其实现、实体类、分页处理类和工具类。 总的来说,通过Spring、Struts和...

    Hibernate通用分页

    在实际应用中,为了提高代码复用性,我们通常会将这些步骤封装成一个通用的分页服务类或者Util工具类,这样在不同的业务场景下只需要传入对应的查询条件和参数,就能快速实现分页查询。 【标签】:“分页”标签强调...

    kindeditor 分页和图片上传完整代码

    3. **自定义上传按钮**:你可以使用KindEditor的`KE.util.addButton`添加自定义的图片上传按钮,指定点击后触发的事件。 4. **处理上传结果**:当用户上传图片成功后,服务器返回的URL需要在编辑器中插入一个`&lt;img&gt;...

    Bootstrap和Java分页实例第二篇

    `&lt;tag-class&gt;`指定了标签的实现类`getui.util.Pager`,`&lt;attribute&gt;`子元素则定义了标签的属性,包括必填的`curPage`、`totalPage`、`pageSize`、`totalCount`和`formId`。 `Pager`类中的`doStartTag()`方法是JSP...

    jsp+sqlserver分页代码

    6. **用户体验**:增加分页导航栏,方便用户切换不同的页面。 #### 四、总结 本文详细介绍了JSP结合SQL Server实现分页的基本原理和代码实现细节。通过对代码逐行解析,不仅帮助读者理解了具体实现方式,还提出了...

    ThinkPHP使用心得分享-分页类Page的用法

    ThinkPHP框架为了简化开发者的操作,提供了一个内置的分页类Page,它能够方便地实现对数据库查询结果的分页显示。本文将详细介绍ThinkPHP分页类Page的使用方法,并通过实际代码示例说明如何在项目中实现分页功能。 ...

    thinkphp 一个页面使用2次分页的实现方法

    在ThinkPHP框架中,分页功能是通过内置的`ORG.Util.Page`类来实现的,它为开发者提供了方便快捷的方式来处理数据集的分页显示。然而,在某些情况下,一个页面可能需要显示两个独立的数据列表,这就需要在同一页上...

    DWR资料(无刷新联动、分页)

    - 使用DWR的`Call`对象,可以方便地调用服务器端的方法,传递参数,并指定回调函数以处理返回结果。 2. **分页**: - 在DWR中实现分页,通常需要在服务器端设计分页逻辑,比如计算总页数、获取当前页数据等。DWR...

    SSH分页(详细的代码过程)

    在`src`目录下创建自定义工具包,如`XXXX.util`,并在此包下定义一个`Page`类,它封装了分页所需的信息: - `hasPrePage`:表示是否有上一页 - `hasNextPage`:表示是否有下一页 - `everyPage`:每页显示的数据数量...

    jsp数据库分页对数据库里检索出来的数据进行分页

    本文将深入探讨如何使用JSP(Java Server Pages)技术对数据库检索出的数据进行分页显示,这是一个非常实用且重要的技能,特别是在构建高效、用户友好的网站时。 ### JSP与数据库分页 #### 一、理解JSP JSP是一种...

Global site tag (gtag.js) - Google Analytics