JiveJdon Community Forums
在线322人   Home   论坛   培训咨询   精华   查搜   注册   登陆
首页 » 论坛 » 项目工程开发经验谈
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 2 回复 / 1 页 [ ]  发表新帖子  回复该主题贴
wilson751

悄悄话
发表文章: 54
注册时间: 2005年10月11日 11:22
项目中查询分页,出现问题,高手指点思路! 2005年12月07日 01:08 本帖网址 发送到手机 回复
采用了Struts1.2 + dao + Hibernate2.12

先说说我的分页思路:
为了应对大数据量的查询,关注点是查询效率。

每次从数据库中取出200条记录,每个页面显示20条,对应的两个类为:Block和Page。

第一次查询时,先查询表中的记录总数,将得到的这个数字,作为参数传递到Block和Page的构造函数,生成唯一的Block对象,和唯一的Pager对象。这两个类生成实例时,采用了singleton模式,主要是考虑到,数据量大,不采用这个模式,会生成过多的对象,影响性能。
之所以将这个数字作为参数,是因为Block和Page类中,需要这个数字,以得到记录总数,并由此计算Block数、Page数。

接下来,在一个dao类中查询第一个Block的记录数,经Hibernate查询后,得到一个List对象。在Action类中,将这个List对象保存到一个ArrayList对象中。并且,将每次查询得到的数据,依次累加的存放到这个List对象中。这样,只要查询的记录不超出范围,就直接到这个对象中取,避免了频繁的访问数据库。

同时产生一个问题:数据量大时,会生成一个非常大的对象,这样会对性能产生很大的影响,如果将暂时不会被查询的数据,从这个对象中删除,保持这个List对象规模较小,应该是个好做法,可是,怎样判断哪些数据可以被删除,我就搞不清楚了,请您指点一下,谢谢!!!

然后,将这个Block中的记录,分成10个Page。得到存放第一个20条记录的ArrayList对象,将这个ArrayList对象,保存到session中,在jsp页中得到它,并显示。
banq

悄悄话
发表文章: 9216
注册时间: 2002年08月03日 17:08
Re: 项目中查询分页,出现问题,高手指点思路! 2005年12月08日 17:27 本帖网址 发送到手机 回复
推荐你研究一下Jdon框架的分页思路实现,可查看使用指南,对你有借鉴作用。
wilson751

悄悄话
发表文章: 54
注册时间: 2005年10月11日 11:22
Re: 项目中查询分页,出现问题,高手指点思路! 2005年12月09日 12:26 本帖网址 发送到手机 回复
多谢banq,偶去看看
这个主题有 2 回复 / 1 页 [ ]
???en_US.forumThreadPrev.name??? 上一主题
  Go back to the topic 返回本主题   Go back to the topic listing返回主题列表    返回页首返回页首
???en_US.forumThreadNext.name??? 下一主题
google yahoo 新浪ViVi 365Key网摘 天极网摘 CSDN网摘 添加到百度搜藏 POCO网摘 博采网摘
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

手机阅读 add to google add to yahoo
解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam