JiveJdon Community Forums
在线167人 J道首页 | 论坛首页 | 培训咨询 | 开源框架 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » J2EE/JavaEE/JEE/EJB/JSF等技术讨论
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 44 回复 / 3 页 [ 1 2 3 下一页 ]  发表新帖子  回复该主题贴
andrawu

发表文章: 38
注册时间: 2002年09月13日 18:16
从数据库中取数据的翻页问题? 发表: 2002年09月16日 17:32 回复
想问问你们在取大量数据过程中,对翻页是怎么进行处理的?
1、根据sql语句(进行记录集的分隔)。
2、根据大对象(进行大对象的分块)。
希望大家能具体的谈谈!
andrawu

发表文章: 38
注册时间: 2002年09月13日 18:16
Re: 从数据库中取数据的翻页问题? 发表: 2002年09月16日 17:34 回复
斑竹你做的翻页还蛮快的,不知是怎么处理的?
jive中有这样的例子吗?
banq

发表文章: 8933
注册时间: 2002年08月03日 17:08
Re: 从数据库中取数据的翻页问题? 发表: 2002年09月16日 21:06 回复
jive中是根据sql语句(进行记录集的分隔)这个办法做的。
你可以看看jive中源程序,它做法很普通和简单,好像是逐个数数到指定的起始点
cc

发表文章: 279
注册时间: 2002年08月07日 23:47
Re: 从数据库中取数据的翻页问题? 发表: 2002年09月17日 08:52 回复
我做了一个分页函数,传进去整个List,传出要显示的部分List,和Html码。这样,无论怎么改sql语句,我得函数都不用变。
banq

发表文章: 8933
注册时间: 2002年08月03日 17:08
Re: 从数据库中取数据的翻页问题? 发表: 2002年09月17日 10:26 回复
你的封装概念还是比较强大,不过界面功能用OO概念设计是比较难的
cc

发表文章: 279
注册时间: 2002年08月07日 23:47
Re: 从数据库中取数据的翻页问题? 发表: 2002年09月17日 11:01 回复
是的啊,不过就像是一个过滤器(Decorator??),在BS结构上也可以用。
andrawu

发表文章: 38
注册时间: 2002年09月13日 18:16
Re: 从数据库中取数据的翻页问题? 发表: 2002年09月17日 11:05 回复
jive和pet Store好象都是通过先生成一个记录集,然后将光标定位到开始位置,jive中好象用的是rs.next()来一条条的下移定位,而pet Store用的是jdbc2.0中的rs.absolute()来定位的。然后将到的区间记录集对象化后传给一个List,这个List就是在页面上显示的页记录了。

但是我有一个问题,就是每次翻页都要先生成一个很大的记录集,然后定位,从大的记录集中得到小块记录集。每翻页生成一个很大的记录集,和定位,效率会不会低啊?比如对10000条记录作每10条分页,每次翻页都先得到10000条记录的记录集,例如翻到每999页,如果是jdbc1.0就要rs.next()循环9990,jdbc2.0中的rs.absolute()还好一点。

CC: 传进去整个List,传出要显示的部分List,传进去整个List是不是全个记录集啊,传出要显示的部分List就是分页后的小记录罗。好象有上面同样的问题哦。

我的想法是只要得到大的记录集一次,每次翻页不要每次生成大的记录集,大家有没有好的方法!
浆糊

发表文章: 245
注册时间: 2002年08月06日 19:20
Re: 从数据库中取数据的翻页问题? 发表: 2002年09月17日 11:08 回复
这个的话就需要用特定的sql语句来实现了,例如mysql中使用 limit
或者你可以是存储过程来实现也是可以的。
cc

发表文章: 279
注册时间: 2002年08月07日 23:47
Re: 从数据库中取数据的翻页问题? 发表: 2002年09月17日 11:27 回复
我用的是MVC结构,“大List”只有一个。

这样实现的,Model传出“大List”给View(jsp页面)。在View中过虑一下,得到“小List”,选择“下一页”,这时候一定不能通过Control,不然,Model又会生成“大List”。所以,可以直接从View与View之间跳转,“下一页”的那个View接到参数与“大List”再执行过虑,生成它自己的“小List”.

其实,View与“下一页View”是同一个页面。

你们懂了么?一定要明白MVC的意义。当然,我指的MVC并不等于Structs。MVC是思想与框架上的东东,不绝对指定某项技术。
andrawu

发表文章: 38
注册时间: 2002年09月13日 18:16
Re: 从数据库中取数据的翻页问题? 发表: 2002年09月17日 11:29 回复
我现在想用oracle中的rowno,原理可能同楼上差不多,对第一次的记录集进行分段,如:100条记录,分10页,可以保存9个分段区间,每次翻页就可以用每个分段区间作为条件查询得到10条记录。这好象可以,但不能得到数据库中最新数据,而且依赖数据库的特性,移植性差。但效率好象高一点 。

请大家比较这两种方法吧,我不知选哪一种好。有没有更好的方法。
andrawu

发表文章: 38
注册时间: 2002年09月13日 18:16
Re: 从数据库中取数据的翻页问题? 发表: 2002年09月17日 11:36 回复
CC: MVC我不懂。

你的Model传出“大List”给View(jsp页面),是不是要将大List保存啊,再通过“大List”生成"小List"。你的“大List”保存在哪里?
cc

发表文章: 279
注册时间: 2002年08月07日 23:47
Re: 从数据库中取数据的翻页问题? 发表: 2002年09月17日 12:43 回复
保存在Model啊,它相当于sessionBean
cc

发表文章: 279
注册时间: 2002年08月07日 23:47
Re: 从数据库中取数据的翻页问题? 发表: 2002年09月17日 12:49 回复
. Java Pet Store用的架构设计是所谓的MVC design pattern。MVC是Model-View-Controller的简写,是design pattern的一种,源自Smalltalk。以往开发这种大型应用程序常常把不同用途的各部分程序都混在一起,造成项目成员分工不清,系统也很难维护。MVC design pattern则是将对象分成三类,Model对象专门用来包装应用程序的状态,View用来负责屏幕上的展现,Controller则负责定义应用程序的各种动作和反应。Java宠物店系统利用MVC Pattern设计整个系统架构,将各层的对象清楚地分开。.NET的宠物店则是完全采用自己定义的架构,所以在一开始就和原来的范例完全不一样。

浆糊

发表文章: 245
注册时间: 2002年08月06日 19:20
Re: 从数据库中取数据的翻页问题? 发表: 2002年09月17日 13:02 回复
翻页问题和mvc有什么关系?
mvc只是一种模式,在一些应用中可以看作一种架构,这个和功能实现好象没有太大关系吧。struts不等于mvc,它只是mvc的一种实现,mvc与mvc还有很多差别吗?为什么说model直接给view一个list? 在model直接实现return list ?mvc结构好象不是这样的吧!
浆糊

发表文章: 245
注册时间: 2002年08月06日 19:20
Re: 从数据库中取数据的翻页问题? 发表: 2002年09月17日 13:05 回复
如果显示的数据和数据库中的数据没有同步,是不是不能满足很多情况的需求?不要返回所有数据!如果有1000万条记录呢,那你的翻页将会是噩梦。
这个主题有 44 回复 / 3 页 [ 1 2 3 下一页 ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-07 jdon.com

anti spam