可以参考:http://search.csdn.net/Expert/topic/2596/2596772.xml?temp=.4115106

解决方案 »

  1.   

    我写的和帖子上的menglionel(挖哈哈)很相似
      

  2.   

    http://search.csdn.net/Expert/topic/2163/2163334.xml?temp=.9242975
      

  3.   

    是啊!小弟以前是pb,vb方面的手现在转行。埃!
    难呀!!!
    谢谢各位发言
      

  4.   

    希望能做成javabean的
    jsp里调用,这样代码比较通用!
      

  5.   

    用oracle个人建议直接用JAVA写个存储过程,在javabean或者JSP里调用,效率和速度都非常高,适合千万级的数据查询分页
      

  6.   

    具体的代码我没有 不过oracle在分页的时候,一般都是SQL分页的String sql="select id from (SELECT ROWNUM AS NUMROW,id FROM user_info)  WHERE NUMROW BETWEEN 1 AND 30"
      

  7.   

    这个只要熟悉sql的都知道。仍然谢谢!
      

  8.   

    使用sql,和oracle数据库进行分页可以有以下三种方法!
    下面让我们看一看如果我们要在数据库中取第1000条到第1010条的数据这两种方法是怎么实现的.1. 使用临时表的方法. (在系统中主要是直接写Sql语句来做)
    a) 按所需的排序方式排好序
    b) 创建临时表
    c) 从数据库里取出第0条 到 第1010条的数据 
    d) 把这些数据放入临时表中
    e) 把临时表再按与 a) 相反的排序方式排好序
    f) 然后只需把临时表中的前10条显时出来
    g) 销毁临时表2. 使用 object 的方法 
    a) 按所需的排序方式排好序
    b) 从数据库里取出第0条 到 第1010条的数据 
    c) 倒着从这1010条数据中取10条 放入一个 object中
    d) 把这个 object里的记录 完全倒置一下
    e) 把 object里的数据显示出来
    显然 第二种 方法优于第一种方法 它减少了系统创建, 销毁临时表所需耗费的资源, 但是它们都有一个共同的弱点. 那就是 它们都要从数据库里取出第0条 到 第1010条的数据 这样就造成了 查询出的记录数很少,但网络传输数据量很大!因此比较好的分页做法应该是:
    每次翻页的时候只从数据库里检索页面大小的块区的数据。这样虽然每次翻页都需要查询数据库,但查询出的记录数很少,网络传输数据量不大,如果使用连接池更可以略过最耗时的建立数据库连接过程。而在数据库端有各种成熟的优化技术用于提高查询速度,比在应用服务器层做缓存有效多了。对于SqlServer 数据库 如要到得第1000-1010条记录:
    Select top 10 * from (
    Select top 10 * from (
    Select top 1010 * from docdetail order by lastmodidate asc ,Id asc
    ) temptbl1 order by lastmodidate desc ,Id desc
    ) temptbl2 order by lastmodidate asc,Id asc对于oracle 数据库 如要到得第1000-1010条记录 由于oracle中的rownum是在查询之后排序之前赋值的.所以其相应的写法应为:
    select * from (
    select my_table.*, rownum as temptbl_rownum from (
    Select * from docdetail order by lastmodidate asc,Id asc
    ) temptbl where rownum <1010
    ) where temptbl_rownum >=1000当以上的Sql语句执行完成以后, 网络传输数据量就从以前的1010条减少到 10条 通过以上分页方式的改变,对我们系统的性能有很大的提升我有个客户使用的是oracel数据库 其中文档数目为 12万条 ,当我们对这张表时行搜索的时候 使用第一种方法进行分页时,页面显示的时间约为10秒左右,而使用第三种方法而现在页面显示时间只需要2-3秒左右.