- 5
- 0
- 约3.01千字
- 约 6页
- 2017-09-01 发布于河南
- 举报
几种常用的分页技术
综述
分页,是一种将所有数据分段展示给用户的技术.用户每次看到的不是全部数据,而是其中的一部分,如果在其中没有找到自习自己想要的内容,用户可以通过制定页码或是翻页的方式转换可见内容,直到找到自己想要的内容为止.其实这和我们阅读书籍很类似.下页显示了两种常见的分页方式.意义
分页确实有效,但它一定会加大系统的复杂度,但可否不分页呢?如果数据量少的话当然可以.但是对于企业信息系统来说数据量不会限制在一个小范围内. 如果不顾一切的Select * from某个表,再将返回的数据一古脑的扔给客户,即使客户能够忍受成千上万足够让人眼花缭乱的表格式数据,繁忙的网络,紧张的服务器也会提出它们无声的抗议,甚至有时会以彻底的罢工作为终结.这个结局有点像古代为所欲为的暴君和他忍无可忍的臣民之间的故事.程序员不是暴君,他希望程序使生活变得更好而不是更糟.考虑到企业信息系统多是三层甚至更多层架构的事实,程序员在向客户展示数据时都应该采取分页的形式.如果他不想被抱怨淹没或是半夜被电话惊醒的话.
从请求发起到返回数据的整个过程
现在你已经下定决心想要分页了,在动手书写代码之前,先让我们回想一下,在典型的三层架构中,从请求发起到返回数据的整个过程.如下所示:在哪里进行分页
从上面的图中我们可以观察得知,在SQL语句处理完毕后,数据库,WebApplication和Browser都能进行分页,那在哪里分页好呢?判断的标准是速度,显而易见,数据库服务器,Web应用服务器和客户端之间是网络,如果网络传递的数据量越少,则客户端获得响应的速度越快.而且一般来说,数据库服务器和Web应用服务器的处理能力一般比客户端要强很多.从这两点来看,在客户端分页的方案是最不可取的.其次就剩下了在Web服务器端分页和在数据库端分页两种方式了,如果选择在Web服务器端分页的话,大部分的被过滤掉的数据还是被传输到了Web应用服务器端,与其这样还不如直接在数据库端进行分页.
分页的SQL语句
如果我们是通过JDBC的方式访问数据库,那么就有必要根据数据库类型采取不同的SQL分页语句,对于MySql数据库,我们可以采用limit语句进行分页,对于Oracle数据库,我们可以采用rownum的方式进行分页.MySql的Limit m,n语句
Limit后的两个参数中,参数m是起始下标,它从0开始;参数n是返回的记录数。我们需要分页的话指定这两个值即可.如右是limit语句的一次应用,图示的SQL语句返回报销记录表中第四,第五条报销额度最大的记录。?
Oracle数据库的rownum
在Oracle数据库中,分页方式没有MySql这样简单,它需要依靠rownum来实现.Rownum表示一条记录的行号,值得注意的是它在获取每一行后才赋予.因此,想指定rownum的区间来取得分页数据在一层查询语句中是无法做到的,要分页还要进行一次查询.右图是分页的具体示例,它从帐户表中返回前十条记录.?
将两种方案统合起来
实际上两种方案的核心查询语句,分页的起点和终点都是一样的,只是方言有所不同.如果将特殊的部分封装起来,对外置以统一的接口,这样在转换数据库时更换被/* */屏蔽的部分即可.下页显示了统合的函数.
ListBaseDomainObj?fetchPageRecords(int?start,int?end,String?coreSql)?throws?CannotConnectToDBException,SQLException{??StringBuffer?sb=new?StringBuffer();????//?下面是Oracle的分页??/**//*sb.append(?Select??????????????????????????????);??sb.append(????????*????????????????????????????);??sb.append(?from????????????????????????????????);??sb.append(????????(????????????????????????????);??sb.append(?????????Select??????????????????????);??sb.append(????????????????t01.*,???????????????);??sb.append(????????????????rownum?as?newRowNum??);??sb.append(?????????from????????????????????????);??sb.append(????????????????(????????????????
您可能关注的文档
- 监理业务考核试题4 Microsoft Word 文档.doc
- 【财务案例研究(不重复).doc
- 第四章金融资产业务题答案.doc
- 第03章 InDesign CS2-页面操作.ppt
- 基础会计第四章业务题作业答案.doc
- 4、工作票考试试题.doc
- 四支队业务培训测试题及答案(下).doc
- 路政业务竞赛试题(四).doc
- 第九章 财务会计报告new.ppt
- 第四章经济业务题.doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 2022-2023年教科版五年级科学下册期中考试卷(含答案).doc
- (高清版)-B-T 34590.7-2022 道路车辆 功能安全 第7部分:生产、运行、服务和报废.pdf VIP
- 【小红书】小红书商业生态.pdf VIP
- 2025中考数学专项复习全等三角形的八大经典模型含答案.pdf VIP
- 2022-2023年教科版五年级科学下册期中试卷及答案1套.doc
- (高清版)-B-T 34590.2-2022 道路车辆 功能安全 第2部分:功能安全管理.pdf VIP
- 交通运输数据合作协议.docx VIP
- 2026-2030成人足矫形鞋垫行业市场现状供需分析及重点企业投资评估规划分析研究报告.docx
- 掌握国内接待计调业务的操作流程课件(共42张PPT)《旅行社计调业务》(中国言实出版社).pptx VIP
- 健康养老职业素养与安全:健康养老职业行为素养PPT教学课件.pptx
原创力文档

文档评论(0)