`

分页算法

    博客分类:
  • j2se
阅读更多
/**
 * <p>Title: 分页算法类</p>
 */
public class Pages {
	
	private int arttotal;
	private int pagetotal;
	private int curPage;
	private int pagesize;
	private String pageInfo;
	
	/**
	 * @return 返回分页结果
	 */
	public String getPageInfo() {
		return pageInfo;
	}
	
	/**
	 * @return 取得文章总数
	 */
	public int getArttotal() {
		return arttotal;
	}
	/**
	 * @return 取得当前页数
	 */
	public int getCurPage() {
		return curPage;
	}

	/**
	 * @return 文章页数
	 */
	public int getPagetotal() {
		return pagetotal;
	}

	/**
	 * @param arttotal 要实现分页的文章总数
	 * @param curPage 当前页数
	 * @param pagesize 页面大小
	 * @param link 每一个页面的链接
	 */
	public Pages(int arttotal,int curPage,int pagesize,String link) {
			this.arttotal = arttotal;
			this.curPage = curPage;
			this.pagesize = pagesize;
			doPages();
			pageInfo(link);

	}
	
	/**
	 *  处理分页的基本数据
	 */
	private void doPages(){
		pagetotal = arttotal%pagesize==0?arttotal/pagesize:arttotal/pagesize+1;
		if(pagetotal==0){
			pagetotal=1;
		}
		if(curPage<1){
			curPage=1;
		}else if(curPage>pagetotal){
				curPage=pagetotal;
		}
	}
	
	/** 根据处理的信息,将得到的信息以html的形式体现再页面上。
	 * @param link 到每一个页面链接的相同部分
	 */
	private void pageInfo(String link){
		StringBuffer sb = new StringBuffer();
		if(pagetotal>1){
		sb.append("<table class='tab' width='100%' height='100%' cellSpacing=0 cellPadding=0>");
		sb.append("<tr><td>&nbsp;&nbsp;共<b>");
		sb.append(pagetotal);
		sb.append("</b>页&nbsp;&nbsp;<b>");
		sb.append(arttotal);
		sb.append("</b>个记录&nbsp;&nbsp;当前第<b>");
		sb.append(curPage);
		sb.append("</b>页&nbsp;&nbsp;&nbsp;<a href=");
		sb.append(link);
		sb.append("&curPage=1>");
		sb.append("<img src='webapp/images/first.gif' border=0 alt=首页></a>");
		sb.append("<a href=");
		sb.append(link);
		sb.append("&curPage=");
		sb.append(curPage>=2?curPage-1:curPage);
		sb.append("><img src='webapp/images/previous.gif' border=0 alt=上一页></a>&nbsp;&nbsp;[");
		int pagebegin = 1;
		int pageend = pagetotal;
		if(curPage <= 5 && pagetotal - curPage > 5){
			pageend = pagetotal < 10 ? pagetotal : 10;
		}else
	        if(curPage > 5 && pagetotal - curPage > 5) {
		        	pagebegin = curPage - 4;
		        	pageend = curPage + 5;
		        } else{
			        if(curPage > 5 && pagetotal - curPage <= 5)
			        	pagebegin = pagetotal < 10 ? 1 : pagetotal - 9;
		        }
		 for(int i = pagebegin; i <= pageend; i++){
             if(i == curPage){
                 sb.append("<b>");
                 sb.append(i);
                 sb.append("</b> ");
             } else{
            	 sb.append(" <a href='");
                 sb.append(link);
                 sb.append("&curPage=");
                 sb.append(i);
                 sb.append("'>");
                 sb.append(i);
                 sb.append("</a> ");
              }
		 }
		sb.append("]&nbsp;&nbsp;<a href=");
		sb.append(link);
		sb.append("&curPage=");
		sb.append(curPage<=pagetotal-1?curPage+1:pagetotal);
		sb.append(">");
		sb.append("<img src='webapp/images/next.gif' border=0 alt=下一页></a>");
		sb.append("<a href=");
		sb.append(link);
		sb.append("&curPage=");
		sb.append(pagetotal);
		sb.append("><img src='webapp/images/last.gif' border=0 alt=末页></a>");
		sb.append("</td></tr>");
		sb.append("</table>");
		}else{
			sb.append("&nbsp;&nbsp;共<b>");
			sb.append(pagetotal);
			sb.append("</b>页&nbsp;&nbsp;<b>");
			sb.append(arttotal);
			sb.append("</b>个记录&nbsp;&nbsp;");
		}
		pageInfo = sb.toString();
		sb = null;
	}
}
分享到:
评论

相关推荐

    动态分页算法java代码

    动态分页算法是数据库系统和Web应用中常用的一种技术,用于高效地处理大量数据并以分页的形式展示给用户。在Java开发中,实现动态分页通常涉及到对数据集的切片操作,以便只加载用户请求的部分数据。下面将详细阐述...

    高效struts分页算法

    Struts分页算法是Web应用开发中的重要组成部分,特别是在大型数据集展示时,为了提高用户体验,需要将数据分页展示。本算法遵循Model-View-Controller(MVC)设计模式,使得代码结构清晰,易于维护。 在Struts框架...

    海量数据库的查询优化及分页算法方案

    海量数据库的查询优化及分页算法方案 随着大规模数据库的出现,如何高效地从这些超大容量的数据库中提取数据、分析、统计以及进行数据分页已经成为一个亟待解决的难题。以下我们将探讨如何在有着1000万条数据的MS ...

    mysql_海量数据库的查询优化及分页算法方案.doc

    MySQL 海量数据库的查询优化及分页算法方案 在大规模数据库中,查询优化和分页算法是两个非常重要的方面。本文将详细介绍 MySQL 海量数据库的查询优化和分页算法方案。 一、查询优化 查询优化是指通过调整查询...

    纯Java分页算法完整版本

    这个我人写的一个纯Java版的分页算法,与平台无关性,具有很好的通用性,同时附带完整的工程; 工程使用SQLServer2005,建表脚本在工程下的Setup中,根据你个人的数据库调整资源文件中的配置即可运行;同时这个算法...

    分页算法 AspNetPager 分页实例 分页sql语句

    本篇将详细探讨分页算法、AspNetPager控件以及相关的SQL分页语句。 首先,我们来了解分页算法。分页算法的核心目标是将数据库中的大量数据分割成若干个小的、可管理的部分,每次只加载一部分到前端展示。常见的分页...

    分页算法 c语言代码

    根据提供的标题、描述以及部分代码内容,我们可以总结出以下关于分页算法的知识点: ### 分页算法概述 分页算法是计算机科学中的一个重要概念,在Web开发中尤其常见。它的主要目的是将大量的数据按照一定的规则...

    Java 分页算法祥解

    ----------=====Java 分页算法 =====------------ 1.Struts+JDBC分页算法 1.1 创建分页控制类(如果使用kevinb.jar可以省略本步) --创建接口Pageable.java --创建实现类PageableResultSet.java 使用以这个实现类来...

    分页算法java实现

    ### 分页算法在Java中的实现解析 #### 引言 分页是数据处理中的一个常见需求,尤其是在Web应用中,为了提升用户体验和减轻服务器压力,将大量数据分批展示是必要的。本文将深入分析一段Java代码,该代码实现了分页...

    网页上实现分页算法

    在网页开发中,分页算法是一项重要的技术,它使得大量数据可以被有效地组织和呈现,提高了用户体验。结合面向对象编程(OOP)思想,我们可以创建一个分页对象,以简化DAO(数据访问对象)层的代码,使得数据的分页...

    JAVA大数据分页算法

    在大数据处理领域,分页算法是至关重要的,尤其是在Java编程环境下。当我们在处理大量数据时,一次性加载所有数据到内存可能会导致性能问题甚至内存溢出。因此,分页查询成为了一个有效的解决方案,它允许我们每次只...

    DREAMWEAVER的分页算法ASP

    ### DREAMWEAVER的分页算法ASP #### 背景介绍 Dreamweaver是一款由Adobe公司开发的专业网页设计工具,它可以帮助开发者快速构建、编辑以及管理网站内容。随着互联网的发展,数据量逐渐增大,如何高效地展示大量...

    oracle分页算法

    对oracle操作报表,能够对数据进行分裂分页算法

    高效率spring+struts+hibernate分页算法

    ### 高效率Spring+Struts+Hibernate分页算法解析 #### 一、引言 在Web应用程序开发过程中,为了提高用户体验以及系统性能,分页显示数据成为了一项必不可少的功能。本篇文章将详细介绍一种基于Spring、Struts和...

    os.zip_doneaj3_rainct2_请求分页_请求分页算法_请求分页系统

    2. 请求分页算法:这些算法决定了当内存中没有空闲页面时,应该选择哪个页面进行淘汰,以便为新的页面腾出空间。 - FIFO(先进先出):最简单的策略,选择最早进入内存的页面进行替换。但这种算法容易导致Belady's ...

    经典java分页算法

    Java 分页算法是Java开发中常见的一种数据处理技术,尤其在大数据量的Web应用中,为了提高用户体验,通常会将数据分成多页展示,而不是一次性加载所有数据。这里我们将详细探讨如何实现一个简单的Java分页算法。 ...

Global site tag (gtag.js) - Google Analytics