`
hesihua
  • 浏览: 233660 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

分页处理

    博客分类:
  • JSP
 
阅读更多

分页处理一直是我想做的,心里面总觉得它很难,现在把它搞出来了,不过还是心有余悸。

一般的分页处理有2种方式,方式一是一次把所有的数据都读出来,然后使用游标进行每次移动固定的次数。

    方式二是使用limit关键字,在每次执行的时候传递不同的参数进行执行。

 

显然在数据量比较少的时候使用方式一和方式二没有太大的区别,但是当数据量比较大的时候,显然是用方式二比较合适。因为方式一一次读出所有的数据会占用大量的内存。

 

我使用的是第二种方式,这个地方使用到了2条sql语句,第一句是将所有的行数读出来,这个时候使用count关键字效率会比较高,第二句是分次读出数据。代码如下:

 

public HashMap<String, Integer>  findUserNumberByDatesLimit(String filePath,String offSetParam) {	
		Connection conn=null;
		ResultSet rs = null;

		this.filePath=filePath;

		if (offSetParam == null) 
			offSet = 0;
		else 
			offSet = Integer.parseInt(offSetParam);
	
		String sqlString="";
		Map<String,Integer> resultSetMap=new HashMap<String,Integer>();
		try{
			conn=this.getDataSource().getConnection();
			conn.setAutoCommit(false);
			
			rs=	query2ResultSet(conn,DBSql.SELECT_ALL_CREATEUSER_COUTNS);
			while(rs.next()){
				this.total=rs.getInt(1);
			}
		//	this.total=totalRecode(rs);			
			// 设置当前页数和总页数
			totalPages = (int)Math.ceil((double)this.total/this.maxLine); 
			currentPages = (int)Math.floor((double)offSet/this.maxLine+1); 
			
			if(total>0){
				sqlString = DBSql.SELECT_ALL_CREATEUSER_COUNTS_LIMIT + " LIMIT " + offSet + " , " + maxLine; 
				rs=	query2ResultSet(conn,sqlString);
			}
			while(rs.next()){			
				resultSetMap.put(rs.getString(1), rs.getInt(2));
			}
		}catch(SQLException e){
			SQLUtil.rolback(conn);
			e.printStackTrace();
		}finally{
			SQLUtil.close(conn);
		}				
		return (HashMap<String, Integer>) resultSetMap;
	}
	
	//**********显示翻页提示栏************* 
	// 显示首页、下页、上页、尾页
	@Override
	public String pageLegend(String startTime,String endTime) { 	
		String str = ""; 
		int first, next, prev, last;
		first = 0; 
		next = offSet + maxLine; 
		prev = offSet - maxLine; 
		last = (this.totalPages - 1) * maxLine; 
		
		if(offSet >= maxLine){ 
			str += " <A href=" + filePath + "?offset=" + first + "startTime="+startTime+"endTime="+endTime+" ><strong> 首页 </strong></A> "; 
		}
		else{
			str += "<strong> 首页 </strong>";
		}
		if(prev >= 0){
			str += " <A href=" + filePath + "?offset=" + prev +  "&startTime="+startTime+"&endTime="+endTime+"><strong> 前页 </strong></A> "; 
		}
		else{
			str += "<strong> 前页 </strong>";
		}
		if(next < total){
			str += " <A href=" + filePath + "?offset=" + next +  "&startTime="+startTime+"&endTime="+endTime+"><strong> 后页 </strong></A> "; 
		}		
		else{
			str += "<strong> 后页 </strong>";
		}
		if(totalPages != 0 && currentPages < totalPages){
			str += " <A href=" + filePath + "?offset=" + last + "&startTime="+startTime+"&endTime="+endTime+ "><strong> 尾页 </strong></A>"; 
		}		
		else{
			str += "<strong> 尾页 </strong>";
		}		
		str += "<strong> 页次:" + getCurrentPages() + "/" + getTotalPages() + "页 ";
		str += maxLine + "条/页 " + "共" + total + "条</strong>";
		return str;
}

 

我看网上很多的分页处理是使用得存储过程,这个东西也是我一直很畏惧的,以后遇到了再学吧。^-^~~

分享到:
评论

相关推荐

    java开发中分页处理

    在Java开发中,分页处理是一项非常常见的任务,特别是在处理大量数据时,为了提高用户体验和系统性能,我们通常会将数据分成多个页面进行显示。本文将深入探讨Java中实现分页处理的方法,以及如何通过代码来实现这一...

    后台实现 分页处理类java

    对结果集list在代码层面进行分页处理。

    Java分页处理

    ### Java分页处理 #### 一、引言与背景 在Web开发中,尤其是在使用Java进行Web开发时,分页处理是一项极其重要的技术。当数据量较大时,如果不使用分页,不仅会导致页面加载时间过长,降低用户体验,还会增加...

    带参数 的 分页 处理

    在IT行业中,分页处理是一项常见的任务,尤其是在大数据量的Web应用中,为了提高用户体验,我们需要将大量数据分批次展示,这就是分页的功能。而"带参数的分页处理"则意味着我们需要根据用户输入或者系统设定的一些...

    JSON分页处理.zip

    JSON分页处理是一种常见的在Web应用中实现数据展示的技术,特别是在大数据量的场景下,为了提高用户体验和降低服务器压力,通常会采用客户端分页。在这个案例中,"JSON分页处理.zip"文件提供的内容可能包括了如何在...

    VB ListView 数据分页处理

    本篇文章将深入探讨如何在VB中利用ListView控件实现数据分页处理。 首先,理解数据分页的基本概念。数据分页是将大量的数据分成若干小块(页),每次只加载和显示一页,而不是一次性加载所有数据。这种方式可以减少...

    JAVA+servlet分页处理,JSP分页超级算法和页面

    在Java Web开发中,分页处理是一个非常常见的需求,它能有效地提高用户体验,尤其是在处理大量数据时。本主题主要探讨的是使用Java、Servlet以及JSP进行分页操作的方法和技术。以下将详细介绍这些技术及其背后的原理...

    海量数据如何做分页处理-方案公布

    ### 海量数据分页处理的关键知识点 在现代软件开发中,处理海量数据是一项关键技能,尤其是在企业级应用中,高效地对大数据进行分页处理是确保系统性能和用户满意度的重要环节。以下是从标题“海量数据如何做分页...

    异步请求分页示例:handler.ashx + $.ajax() + Json + 分页处理

    这个示例结合了`handler.ashx`处理程序、`$.ajax()`方法、JSON数据格式以及前端分页处理,构建了一个高效的分页系统。下面我们将详细探讨这些知识点。 首先,`handler.ashx`是一种基于ASP.NET的HTTP Handler,它...

    关于分页处理--跳转到第N页

    在网页开发中,分页处理是一项非常常见的功能,特别是在数据量较大的情况下,为了提高用户体验,我们需要将大量数据分块展示,而不是一次性加载所有内容。"关于分页处理--跳转到第N页"这个主题主要涉及到如何实现...

    前端 elementUI 穿梭框大量数据分页处理

    本文将详细介绍如何在ElementUI的穿梭框组件中实现大量数据的分页处理,并提供一个名为`myTransfer`的示例资源,该资源可以直接引入到你的ElementUI项目中,帮助你解决此类问题。 首先,理解穿梭框的工作原理是解决...

    sql的分页处理,海量数据的提取效率分析

    在SQL中,分页处理是处理海量数据时不可或缺的一个功能,尤其在网页展示或数据分析时,用户通常希望分批次查看结果,而不是一次性加载所有数据。本文将深入探讨SQL的分页处理方法及其对海量数据提取效率的影响。 ...

    VB6 ListView 数据分页处理

    因此,"VB6 ListView 数据分页处理"这个主题就显得尤为重要。 数据分页是一种优化数据加载的方法,它可以将大块数据分割成多个小块(页),每次只加载一页数据到ListView中,用户可以逐页浏览,这样既能保证程序...

    高性能jdbc分页处理

    高性能jdbc分页处理,使用PreparedStatement方式

    好用的page分页处理

    在IT行业中,分页处理是网页开发中必不可少的一部分,尤其对于大数据量的展示,它可以有效提高用户体验并减轻服务器压力。本资源提供了一个高效且易理解的分页解决方案,主要使用Java后端配合JSP(JavaServer Pages...

    分页处理框架pager-taglib

    **分页处理框架pager-taglib详解** 在Java Web开发中,分页处理是常见的需求,尤其是在数据量庞大的情况下,为了提高用户体验,我们需要将数据分批显示。`pager-taglib`是一个专门为解决这个问题而设计的轻量级分页...

    SQL分页处理实例代码

    SQL分页处理实例代码,SQL分页处理实例代码,SQL分页处理实例代码。。。

    Struts中的分页处理

    分页处理是Web应用中常见的一种功能,尤其是在展示大量数据时,能够提高用户体验。Struts框架提供了一些机制来支持分页,让我们深入探讨一下。 首先,分页的基本概念是将大量的数据集分成多个小部分,每次只加载一...

Global site tag (gtag.js) - Google Analytics