Web项目中的分页技术_第1页
Web项目中的分页技术_第2页
Web项目中的分页技术_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、web项目中的分页技术1、游标查询直接使用rcsultsct来处理。rcsultsct是直接在数据库上建立游标,然后通过rcsultsct 的行位置定位接口來获得指定行位置的记录。当用八第一谙求数据查询吋,就执行sql语句查询,获得的resultset 象及其要使用 的连接对象都保存到其对应的会话对象屮。以后的分页杳询都通过第一次执行sql获得的 resultset对彖定位取得指定行位置的记录。最后在用户不再进行分页査询时或会话关闭时, 释放数据库连接和resultset对象等数据库访问资源。说明:在用例分页查询的整个会话期间,一个川户的分页查询就要占川一个数据库连接对象 和结果集的游标,这种

2、方式对数据库的访问资源占用比较人,并且其利用率不是很高。所 有的数据库产品。优点:减少了数据库连接对象的多次分配获取,减少了对数据库的sql查询执行。缺点:占用数据库访问资源一数据库连接对象,并占用了数据库上的资源一游标。而这些资 源部是十分宝贵的有限制的。结论:由于数据库的查询及其分页处理是直接使用jdbc的,并在分贝中是使用rseultset 的查询结果集一游标形式实现的,并且每个客户对应一个会话,每个会话对应一个数据库连 接和一个结果集(游标),数据库连接和游标是在会话终止吋才释放的。因此在多个客户的 请求过程屮,可能对数据库的访问资源(数据库连接和用于数据操作的游标)占用比较大。 因此

3、数据库访问及其数据库的处理可能是个瓶颈。这种的数据库杳询分页处理方式不是最住 的。一般不适用这种方式。2、定位行集sql查询主要是直接使用数据库产品的提供的对杏询的结果集可定位行范围的sql接口技术。在用户的分页面查询请求中,每次町取得查询请求的行范围的参数,然后便用这些参数生产 取得指定行范围的的sql查询语句,然后每次请求获得一个数据卉连接对彖并执行sql查 询,把查询的结果返冋给用户,最后释放说有的数据库访问资源。说明:这种方式需要每次请求时都要执行数据库的sql查询语句;对数据库的访问资源是 使用完就立即释放,不白白占用数据库访问资源。对特定(提供了对查询结果集可定位功能 的)的数据库

4、产品。如:oracle,db2, postgresql,mysql 等。(ms sql server 没有提供此技术。)如:1). oracle数据库使用关键字:rowid或rownum2).db2:: rowid 或 rownum ()3). postgresql 使用 limit 和 offset4). mysql 使用 limit 优点:优点:这种技术是直接使用数据库产品自己提供的可对查询结果集定位行范围过滤的功能, 因此直接利川了数据库的性能对此分页查询的优化功能。对数据库的访问资源(数据库连接 対象,数据库游标等)没有浪费,这些资源的充分重复的利用。対查询的结果対web容器 没有什么

5、特别要求。缺点:要执行多次数据库sql查询操作。对每次的分页面操作请求都要指泄相应范围的结 果集來执行sql语句的数据库查询操作,这对数据库有一定的影响。对每次分页血查询请 求要频繁的从web容器中获得数据库访问资源(数据库连接对象和数据库游标)。要依赖于 具体的数据库产品。因为对没冇实现没有提供此技术的数据库产品不能使用此方式。结论:由于每次对数据库的sql杳询操作相对而言耗用的数据资源比较少,并且在实际用 户的操作中,有可能用户对查询的所有结果集只是需耍查看其中的部分页面。因此这种方式是最佳的。3、特别处理的定位行集sql查询这种方式是在方式2的基础上针对不捉供对査询结果集行范围定位的数据

6、库产站。其在web容器端的操作逻辑大致和方式2相同。只是先要対要查询的数据库表要有一字段 的数据能区别每条不同的数据记录。笫一次查询吋,获得用来可唯一标识不同记录的字段的 所有结果集,并缓存起来以备后面的分页面查询指定要杳询的结果集的行范伟i。主要是针 对不同对杏询行集可定位范围获得的数据库产品,如ms sql server等。假设从a, b, c 三个表中选取数据。且a有字段id用来可唯一区别不同的记录。那么笫一次查询的时候,会查询两次1). select a.id from a,b,c where condition.2).把a的id缓存到session中3).从session中。现可按照

7、次序來取得相应页而范围的id来,并构造下一个查询语句: select a.name, b.add from a,b,c where condition && ( a.id in 本页血范围的 id),以后每次 翻页的时候,依次获得对m页的id只要表屮唯一的就可以了。无所谓人小,顺序。这样, sesssion缓存的就只是一列而不是所有列了。当然,对于列数不多的,效果并不好。也 | j使用存储过程实现,i|j参照: /2365/2365596.xml?temp=.7529261优点:同方式2缺点:同方式2;还要在要查询的数据库表中建立一个相应的id,用来唯一区别每条记录。 结论:同方式2。4、缓存一次sql查询的结果集采用“缓存一次sql查询的结果集”的分页而查询技术,即一次sql查询,把从数据 库查询出来的结果保存到会话中,以后的客户分页查询操作都从此缓存中収得。优点:缺点:既然我们要缓存结果,那么用门就可能会看到过期的数据说明:对于实际情况的应用來说,一般结合实际情况,结合使用方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论