4个回答
展开全部
分页一般有两种方式,假如你每页只显示20条数据:
一 把所有的结果集都查询出来放到一个集合中,然后在第一页从该集合中取出前20条显示到页面上。点击下一页,再从该集合中取出21--40条显示到页面上。二 就是利用mysql的limit语句,把页码传到底层数据库,用户翻一页就执行一次查询,查出该页要显示的内容。
例如:select * from 表 limit 0,20;取1--20的记录
select * from 表 limit 20,20;取21--40的记录
其中limit后面的第一个参数是偏移量,相当于从哪行记录开始查询
第二个参数是要取出的记录数
我认为第二种方式比较好,因为假设结果集是1万条,如果用第一种方式一下子取到集合里再分页,太浪费资源。
而第二种方式,用户看翻10页它就查200条,看100页就取2000条。比较节省资源,反正用户都比较懒,一般都不会从第一页一直翻到最后一页 :)
这两种方式,网上代码有不少,这里就不多说了,祝你顺利!
一 把所有的结果集都查询出来放到一个集合中,然后在第一页从该集合中取出前20条显示到页面上。点击下一页,再从该集合中取出21--40条显示到页面上。二 就是利用mysql的limit语句,把页码传到底层数据库,用户翻一页就执行一次查询,查出该页要显示的内容。
例如:select * from 表 limit 0,20;取1--20的记录
select * from 表 limit 20,20;取21--40的记录
其中limit后面的第一个参数是偏移量,相当于从哪行记录开始查询
第二个参数是要取出的记录数
我认为第二种方式比较好,因为假设结果集是1万条,如果用第一种方式一下子取到集合里再分页,太浪费资源。
而第二种方式,用户看翻10页它就查200条,看100页就取2000条。比较节省资源,反正用户都比较懒,一般都不会从第一页一直翻到最后一页 :)
这两种方式,网上代码有不少,这里就不多说了,祝你顺利!
展开全部
很简单,将所有记录存储到一个列表里面,这个列表有序号,通过页面大小将这个列表分割,每一个jsp页面都读取当前页面编号,最初这个编号设置为1,点击其他页时就用页面编号与页面大小通过计算出来。明白不?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我也是网上找的,希望能帮到你。
大部分网站架构都是基于MVC,通常jsp作为显示层,或者用模板技术作为显示层,在此层将会显示查询记录总数,以及当前页,还有页面导航,以及显示改页的记录(Model),.servlet通常作为控制层,用于收集查询条件,调用业务Bean,,完成翻页查询,并将结果返回到显示层.对于分页来说,每层次的主要任务如下: * J5 r' G0 w" v4 s. b- E0 D4 T
显示层: 取出记录总数,并显示出来; 指示当前在第几页;显示翻页导航条,如象google那样的翻页,或者象yahoo那样的翻页风格;取出记录集,并显示出来,通常,一页显示10-30条,并且,这是可以配置的 - x* U& x4 @- p$ P" t
控制层:查询的时候,将用户输入的查询条将,通常表现形式是QueryValue放入会话中,以便下次翻页的时候重新取出查询条件;如果是第一次查询,调用业务Bean,需要查询记录总数,并查询出第一页的结果集,并传到显示层。如果是其后后的翻页,则需要调用业务Bean查询指定范围内的结果集,并传到显示层 4 U4 K7 q$ E7 M
业务Bean:业务Bean提供按照QueryValue查询出合乎条件总数
- E, Z; I( O# O: N4 N% E0 B" r8 g! X业务Bean提供按照QueryValue,以及 范围(startIndex,endIndex)查询合乎条件的结果集 ' W/ L& o0 ~$ p+ t; `$ D: }5 }5 k, I
现在举个例子,分别从业务Bean,控制层,显示层的具体实现来完成分页
大部分网站架构都是基于MVC,通常jsp作为显示层,或者用模板技术作为显示层,在此层将会显示查询记录总数,以及当前页,还有页面导航,以及显示改页的记录(Model),.servlet通常作为控制层,用于收集查询条件,调用业务Bean,,完成翻页查询,并将结果返回到显示层.对于分页来说,每层次的主要任务如下: * J5 r' G0 w" v4 s. b- E0 D4 T
显示层: 取出记录总数,并显示出来; 指示当前在第几页;显示翻页导航条,如象google那样的翻页,或者象yahoo那样的翻页风格;取出记录集,并显示出来,通常,一页显示10-30条,并且,这是可以配置的 - x* U& x4 @- p$ P" t
控制层:查询的时候,将用户输入的查询条将,通常表现形式是QueryValue放入会话中,以便下次翻页的时候重新取出查询条件;如果是第一次查询,调用业务Bean,需要查询记录总数,并查询出第一页的结果集,并传到显示层。如果是其后后的翻页,则需要调用业务Bean查询指定范围内的结果集,并传到显示层 4 U4 K7 q$ E7 M
业务Bean:业务Bean提供按照QueryValue查询出合乎条件总数
- E, Z; I( O# O: N4 N% E0 B" r8 g! X业务Bean提供按照QueryValue,以及 范围(startIndex,endIndex)查询合乎条件的结果集 ' W/ L& o0 ~$ p+ t; `$ D: }5 }5 k, I
现在举个例子,分别从业务Bean,控制层,显示层的具体实现来完成分页
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、每次提取一部分数据(mysql中容易操作,已提供了现成的sql语句),这样占用的内存较少,但访问数据库的次数增加了,自然数据库负荷增加。
2、把数据一次性提取出来,放到session中,再按分页需求,依次在session中提取,数据量较大时建议不要使用,内存消耗太大。
3、使用第三方数据库操作框架,比如Hibernate,这样你需要花时间好好学习它了。
祝你成功!
2、把数据一次性提取出来,放到session中,再按分页需求,依次在session中提取,数据量较大时建议不要使用,内存消耗太大。
3、使用第三方数据库操作框架,比如Hibernate,这样你需要花时间好好学习它了。
祝你成功!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询