您的当前位置:首页正文

java中的分页

来源:个人技术集锦


WEB中数据分页介绍

数据分页概述

• 通常在Web页面中,在数据量比较大时,无法在一个页面中显示所有数据 • 在某些特定场景下,并不需要返回所有满足条件的数据 • 从数据的角度看,需要返回指定范围内的数据

数据分页的目标

计算机在运行程序时候绝大部分是在同一页内进行,改变的只是偏移地址;所以通过分页机制,实现虚拟内存管理,即可以让程序在比实际物理内存大的多的空间内运行,又可以实现保护模式,还可以减少改变地址的数位。

数据分页的技术实现分类

数据层分页技术 应用层分页技术 展现层分页技术

数据层分页技术

• 在数据库查询时,只查询特定页面的数据主要由T-SQL 来完成, 适用于比较大的数据表

优点:返回的结果集小,查询速度快 缺点:需要多次查询数据库

数据层分页技术-使用临时表 • 在查询数据前,创建一个临时表

• 表的列比要返回的结果集多一个标识列 • 按照特定列排序,将结果插入到临时表中 • 此时,可以按照标识列返回特定页

数据层分页技术-使用表变量 • 在查询数据前,创建一个表变量

• 表的列比要返回的结果集多一个标识列 • 按照特定列排序,将结果插入到表变量中 • 此时,可以按照标识列返回特定页面

数据层分页技术-使用数据库关键字 例如SQL SERVER中TOP • 若要按特定列正排序取第91-100 行数据 • 首先,按特定列正排序取Top 100 • 然后,反向排序取Top 10

• 最后,再将结果正排序后返回

数据层分页技术-使用特殊方法 如:使用行号 • 在SQL Server 2005/2008 中

• 查询结果集时,添加一个ROW_NUMBER() 表示行号

• 将上述结果集作为子查询,通过 ROW_NUMBER() 筛选出特定页面

应用层分页技术

• 在应用层/逻辑层缓存数据,并进行数据的分段显示 • 主要由程序代码完成

• 优点:查询数据库次数少,每次返回结果快• 缺点:第一次查询慢,占用应用层内存资源

展现层分页技术

• 在客户端进行数据分页 • 主要通过客户端脚本来实现• 优点:减少网络传输量,提高带宽利用率• 缺点:需要编写大量客户端脚本,增加开发与维护成本

数据分页一般需要显示哪些信息首页 上一页 页码链接 下一页首页 上一页 [1] 2 [3] [4] [5]

分析需求 功能:

是否显示 首页、尾页

上一页、下一页 是否一直显示如果当前页是第一页是否显示上一页,还是显示了不可以点击。如果当前页是第最后页是否显示尾页,还是显示了不可以点击。页码连接默认显示多少个,还是不显示页码链接总共多少页是否显示 指定页面跳转是否显示

显示了是直接输入了页面按回车键即可,还是需要提供按钮,或者超链接,还是图片,或客户自

定义

AJAX) 样式:

所有显示提供客户样式选择,但程序提供默认,或给定部分样式供客户选择,或客户自定义样式需要提供style 与class两个属性的实现其它属性我们一个

其他:

例如我们是对那个Table分页【首页】 上一页 5 6 7

尾页 总共多少页下一页 尾页 2/30

需要指定Table的8 9 下一页 【尾页】 指定页码 5 otherAttribute分页的数据源要与 是否支持异步(是否缓存数据其他属性例如 width height 等等 ID Table显示的数据源一致

分页格式:

分页代码:JSTL

【首页】 1}\"> 上一页 ${pageNumber } 5}\"> 3 && pageCount>pageNumber+1}\"> pageNumber-3 && x ${x } pageCount表示总页数 pageNumber表示当前页 3 && pageCount pageCount-5}\"> ${x } ${x } ${x } 下一页 【尾页】

因篇幅问题不能全部显示,请点此查看更多更全内容