📄 621168.xml
字号:
<?xml version='1.0' encoding='GB2312'?>
<?xml-stylesheet type='text/xsl' href='../csdn.xsl'?>
<Topic>
<Issue>
<PostUserNickName></PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>120</credit>
<TopicId>621168</TopicId>
<TopicName>jsp分页问题,用Vector怎样实现</TopicName>
<PostUserId>168868</PostUserId>
<PostUserName>DDDuck</PostUserName>
<RoomName>JSP</RoomName>
<ReplyNum>12</ReplyNum>
<PostDateTime>2002-4-4 8:35:45</PostDateTime>
<Point>30</Point>
<ReadNum>0</ReadNum>
<RoomId>28</RoomId>
<EndState>2</EndState>
<Content>我想提高分页效率,请问用Vector如何实现,一般什么情况下有必要用这种方式?要具体点的方法,怎样存?怎样取?</Content>
</Issue>
<Replys>
<Reply>
<PostUserNickName>学习三个代表,实践三个代表</PostUserNickName>
<rank>五级(中级)</rank>
<ranknum>user5</ranknum>
<credit>100</credit>
<ReplyID>4102290</ReplyID>
<TopicID>621168</TopicID>
<PostUserId>118060</PostUserId>
<PostUserName>wes109</PostUserName>
<Point>0</Point>
<Content>我的想法是
设计一个bean
将所有结果加入Vector
用循环控制显示
至于存取是基本知识
你自己查资料</Content>
<PostDateTime>2002-4-4 8:51:01</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>经历单纯的男人不要奢谈成熟和魅力</PostUserNickName>
<rank>四级(中级)</rank>
<ranknum>user4</ranknum>
<credit>119</credit>
<ReplyID>4104336</ReplyID>
<TopicID>621168</TopicID>
<PostUserId>172275</PostUserId>
<PostUserName>huyuefox</PostUserName>
<Point>10</Point>
<Content>用vector很消耗系统资源,一般分页不用vector,一般的方法:
oracle;用rownum分段查出,速度很快
sql server:用absolute()指向结果集的某一条数据;再利用总页数,每页显示的纪录数,来计算并指向某一页第一条纪录。</Content>
<PostDateTime>2002-4-4 10:39:03</PostDateTime>
</Reply>
<Reply>
<PostUserNickName></PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>120</credit>
<ReplyID>4104546</ReplyID>
<TopicID>621168</TopicID>
<PostUserId>168868</PostUserId>
<PostUserName>DDDuck</PostUserName>
<Point>0</Point>
<Content>vector很消耗系统资源吗,那分页用vector到底是出于什么考虑?结果集一般有一千条记录的基于3表的查询有没必要用呢??
选择的时候除了结果集的记录数主要考虑哪些因素??
我现在的查询操作出奇的慢,想优化一下。请帮忙
</Content>
<PostDateTime>2002-4-4 10:49:42</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>学习三个代表,实践三个代表</PostUserNickName>
<rank>五级(中级)</rank>
<ranknum>user5</ranknum>
<credit>100</credit>
<ReplyID>4104640</ReplyID>
<TopicID>621168</TopicID>
<PostUserId>118060</PostUserId>
<PostUserName>wes109</PostUserName>
<Point>0</Point>
<Content>absolute()好象只有jdbc2才支持的,如果你可以用的话,会很方便</Content>
<PostDateTime>2002-4-4 10:53:29</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>笨笨</PostUserNickName>
<rank>两星(中级)</rank>
<ranknum>star2</ranknum>
<credit>120</credit>
<ReplyID>4104987</ReplyID>
<TopicID>621168</TopicID>
<PostUserId>115764</PostUserId>
<PostUserName>yanchang</PostUserName>
<Point>10</Point>
<Content>用Vector的效率不是很高
用JDBC2.0的absolute()特性实现会好些</Content>
<PostDateTime>2002-4-4 11:08:57</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>经历单纯的男人不要奢谈成熟和魅力</PostUserNickName>
<rank>四级(中级)</rank>
<ranknum>user4</ranknum>
<credit>119</credit>
<ReplyID>4109316</ReplyID>
<TopicID>621168</TopicID>
<PostUserId>172275</PostUserId>
<PostUserName>huyuefox</PostUserName>
<Point>0</Point>
<Content>DDDuck() 你到底用的什么数据库?
如果你是oracle数据库的话,用absolute()会报错?sql server没问题?
Vector效率不太高是因为它太占内存了。
Vector其实就是数组, 创建特定大小的一个数组,然后假如用光了存储空间,就再创建一个新数组,将所有句柄从旧数组移到新数组。</Content>
<PostDateTime>2002-4-4 14:35:59</PostDateTime>
</Reply>
<Reply>
<PostUserNickName></PostUserNickName>
<rank>三级(初级)</rank>
<ranknum>user3</ranknum>
<credit>110</credit>
<ReplyID>4110017</ReplyID>
<TopicID>621168</TopicID>
<PostUserId>3170</PostUserId>
<PostUserName>beloved</PostUserName>
<Point>10</Point>
<Content>其实还是用SQL实现比较好,这样可以节约资源,而且数据库中查询的速度是相当的快的。</Content>
<PostDateTime>2002-4-4 15:11:02</PostDateTime>
</Reply>
<Reply>
<PostUserNickName></PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>120</credit>
<ReplyID>4112538</ReplyID>
<TopicID>621168</TopicID>
<PostUserId>168868</PostUserId>
<PostUserName>DDDuck</PostUserName>
<Point>0</Point>
<Content>我用的ORACLE,我决定不用VECTOR了,谢谢大家的意见,现在的问题是:
方法一:SELECT出所有记录,然后用RS.ABSOLUTE()定位
方法二:SELECT出本页要显示的记录集,然后用RS.ABSOLUTE(),但这个SELECT语句很复杂,因为有ORDER BY 排序,所以有三层。
结果集多大适合用那种方法??
谢谢解答!!</Content>
<PostDateTime>2002-4-4 17:33:59</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>书剑恩仇</PostUserNickName>
<rank>二级(初级)</rank>
<ranknum>user2</ranknum>
<credit>100</credit>
<ReplyID>4124321</ReplyID>
<TopicID>621168</TopicID>
<PostUserId>188574</PostUserId>
<PostUserName>stchin</PostUserName>
<Point>0</Point>
<Content>三层就要修改你的表了,或者你的select语句有问题吧.
做成视图要好一些,在视图的基础上查询.
如果以时间排序的话就不要排,默认以关键字/第一个字段排序(没错吧).</Content>
<PostDateTime>2002-4-5 13:36:15</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>没爱,怎么行?</PostUserNickName>
<rank>二级(初级)</rank>
<ranknum>user2</ranknum>
<credit>95</credit>
<ReplyID>4125013</ReplyID>
<TopicID>621168</TopicID>
<PostUserId>113322</PostUserId>
<PostUserName>apboy</PostUserName>
<Point>0</Point>
<Content>如果是用oracle,最好用VECTOR,因为目前jdbc(是oracle)一般不支持RS.ABSOLUTE()</Content>
<PostDateTime>2002-4-5 14:10:46</PostDateTime>
</Reply>
<Reply>
<PostUserNickName>经历单纯的男人不要奢谈成熟和魅力</PostUserNickName>
<rank>四级(中级)</rank>
<ranknum>user4</ranknum>
<credit>119</credit>
<ReplyID>4126631</ReplyID>
<TopicID>621168</TopicID>
<PostUserId>172275</PostUserId>
<PostUserName>huyuefox</PostUserName>
<Point>0</Point>
<Content>最好是将分页程序封装在javabean中,这样以后你就省事多了。还有我们咨询过北京oracle公司的工程师:oracle不支持RS.ABSOLUTE(),就算用jdbc2.0也不行。所以只有用rownum的方法。速度还不错。
</Content>
<PostDateTime>2002-4-5 15:40:07</PostDateTime>
</Reply>
<Reply>
<PostUserNickName></PostUserNickName>
<rank>一级(初级)</rank>
<ranknum>user1</ranknum>
<credit>120</credit>
<ReplyID>4128515</ReplyID>
<TopicID>621168</TopicID>
<PostUserId>168868</PostUserId>
<PostUserName>DDDuck</PostUserName>
<Point>0</Point>
<Content>没有呀,我用absolute传到服务器上是可以的
只是本地调试不行</Content>
<PostDateTime>2002-4-5 17:22:10</PostDateTime>
</Reply>
</Replys>
</Topic>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -