当前位置:  技术问答>java相关

讨论如何高效实现分页。

    来源: 互联网  发布时间:2015-10-17

    本文导语:  在大量数据记录的情况下,实现分页功能如何做查询速度最快???欢迎高手讨论,一定给分。 | 简单方法如下: int curpage=1;//当前页 int page_record=20;//每页显示的记录数 //显示第1000页的记录...

在大量数据记录的情况下,实现分页功能如何做查询速度最快???欢迎高手讨论,一定给分。

|
简单方法如下:
int curpage=1;//当前页
int page_record=20;//每页显示的记录数
//显示第1000页的记录,用下面的方法
curpage=1000;
rs.executeQuery("select top "+page_record+" * from tablename where id not in (select top "+(curpage*page_record)+" id from tablename order by id desc) order by id desc");
本查询语句得到的是所要显示的1000页的20条记录,大致思路为——
子查询排除前999*20(页数*每页记录数)条记录,父查询则对余下的记录进行降序排列

|
在很多论谈上都有这个例子的。我也只是引用别人的而以。








JSP数据库操作例程 - 数据分页显示 - JDBC 2.0 - Oracle




姓名
年龄

0){
//将记录指针定位到待显示页的第一条记录上
sqlRst.absolute((intPage-1) * intPageSize + 1);
//显示数据
i = 0;
while(i





第页  共页  下一页  1){%>上一页


  

|
每次查询的时候只根据每页显示的个数,比如10,每次就只查10条记录,其他的只要统计出来就行。
下一次翻页,再查下10条,剩下的还只是个统计数。

|
滚东记录

|





JSP数据库操作例程 - 数据分页显示 - JDBC 2.0 - Oracle




姓名
年龄

0){
//将记录指针定位到待显示页的第一条记录上
sqlRst.absolute((intPage-1) * intPageSize + 1);
//显示数据
i = 0;
while(i






第页  共页  下一页  1){%>上一页


 

public class pageControl
{
public int curpage ; 
public int maxpage ; 
public int maxrowcount ; 
public int rowsperpage ; 


public void calMaxPage() 
   {   
                 if (this.maxrowcount % this.rowsperpage==0)
{
this.maxpage = this.maxrowcount/this.rowsperpage;
}
else
{
this.maxpage = this.maxrowcount/this.rowsperpage + 1;
}
}
}
jsp中:
pageControl pageCtl=new pageControl();
        pageCtl.rowsperpage=10;//每页显示的行数
        int pageNo=1;

        if (request.getParameter("page")!=null) 
{
               pageNo=Integer.parseInt(request.getParameter("page"));
            }

        pageCtl.curpage=pageNo;//当前页
    pageCtl.maxrowcount=从数据库中取得的要显示出来的记录数
     pageCtl.calMaxPage();//调用方法
 
    首页 上一页
    
    
    下一页 尾页
    
    每页行 共行 第页
    共页
//over



|

Oracle中:
采用 top n 方法
select * 
  from (select item_code, rownum rno
          from epd_item_master
         where rownum = 10020;

可取出 10020-10041条纪录

程序使用时课改写一下(我在bean中实现,效果很好,十几万条纪录的表,查询速度很快)
"
select *
from (select HXH_TNAME.*, rownum rno 
      from ("+SQLstr+") HXH_TNAME 
      where rownum = "+rs_last+"
)"

    
 
 

您可能感兴趣的文章:

  • 欢迎大家一起来讨论:集群在J2EE中的实现。
  • 大家讨论一下用QT及OSS实现LINUX下的录音程序的方法,说出想法就给分
  • 大家一起讨论一下这个程序设计(关于socket实现http协议)。
  • 讨论,如何实现表示层(P)、功能层(F)、数据层(D)的分离?
  • 请大家来讨论一下用CMP EJB可不可以实现create table?
  • shell 编程 按下tab键自动补全,该如何实现,欢迎大家讨论
  • java能否实现递归调用,入门级问题!!欢迎大家讨论!
  • 集思广益,力求完美实现"围棋"程序,1000分做项目基金,参与讨论者也有分
  • [讨论]csdn新版论坛的xml技术是如何实现的?
  • 讨论一下如何实现一个生产者与两个消费者的问题(版主们一定要来看看)
  • 讨论,用户空间和内核空间如何通信,有什么方式,如何实现的?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Java 可以做拨号程序吗?我只是和大家讨论讨论 不必太认真
  • 欢迎高手来讨论:关于文件格式的大讨论
  • 参数传递的问题!(大家讨论讨论)
  • 用java开发一个基于Proxy(代理)的网络计费系统。有兴趣的来讨论讨论
  • 哪位高手有兴趣跟我讨论讨论java中调用dll文件??小弟有些问题还是不很清楚??
  • 【讨论贴】gcc开发的时候有大家都有什么好的调试方法,来讨论下
  • 和Java版高手在线讨论代理服务器的问题,讨论者都有分。
  • 讨论讨论,当错误发生时,并用if语句测试出时,应该返回怎样的值
  • 一个面试,是“北京华胜六所”外包给风河(VxWorks)北京研发处,做linux内核开发,大家过来讨论讨论
  • 新建了个QQ群(软件与创业),希望有兴趣的朋友进来讨论讨论软件项目、产品、创业、管理、投资等(代码之外的)观点和想法
  • Java 访问控制的问题(public,private,protected,(default))!讨论讨论!
  • 用java做c/s结构可行吗???大家来讨论讨论,应该都会有收获。
  • 这两天本版人气不高,我来发个问题,有关互斥同步的。大家讨论讨论
  • 有没有人讨论value object模式
  • http://www.itpub.net 论坛更换数据库,速度更快,欢迎大家前去讨论!
  • 讨论“内存泄漏”
  • 很专业的问题请教J2EE高手!这是一个讨论区,有请各位对J2EE感兴趣的朋友参加讨论!
  • 大家一起讨论讨论,suse和ubuntu的区别,顺便散散分
  • 对大家很有意义的一个问题,建议大虾、菜鸟们都来讨论讨论#¥#·#¥·#%#¥%#¥%
  • 大家来讨论一个最实际的问题:)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3