使用oracle
谁有比较好的例子?能不能发一份学习一下?
主要是实现数据库端分页这块:一次查询只查询出一页条数的结果集,而不是所有的结果集
谢谢:)

解决方案 »

  1.   

    主要是sql这块怎么写,别人已经写好了页面,我现在是要对其优化:做分页,所以他们已有的sql部分是得保留的,只能增加,不能删除或是改动,请教?:)
      

  2.   

    如果你用hibernate的话,它里面会有响应方法setFirstResult(0);setMaxResult(10);这样的!
    不然只能用sql语句实现了,而且非常麻烦
      

  3.   

    首先也要搞清楚他们的sql分页是类似sql语句的top分页还是存储过程分页,还是hibernate的分页?
    是不是有什么接口可以给你调用,注意参数.
    先搞清楚些呵呵
      

  4.   

    SELECT * FROM (SELECT A.*, rownum r FROM (select * from table ) A WHERE rownum <= 10) B WHERE r > 0
    其中select * from table换成你自己的sql
      

  5.   

    int currpage; // 当前页
    int pageCount=10;//一页10条数据
    string sql = "select * from table where rowId(自增长的一个列名) > (currpage-1)*pageCount and rowId <= currpage*pageCount";
    这样查出的就是一页的数据了,当点击上一页,下一页标签时把currpage传过去就可以拉
      

  6.   

    首先也要搞清楚他们的sql分页是类似sql语句的top分页还是存储过程分页,还是hibernate的分页?
    是不是有什么接口可以给你调用,注意参数.
    先搞清楚些呵呵四楼的兄弟能不能把这几种情况都列出来,大家学习学习啊!! 谢了!!
      

  7.   

    oracle是可以支持在数据库端就取结果集中指定部分的.好像就是5楼说的这样.
      

  8.   

    可以直接利用resultset进行翻页
    也可以利用between ... and ...具体数据库可能不一样mysql 是limit
      

  9.   

    同意5楼
    rownum 是 oracle里面的一个隐藏列,不像sql2000 里面的top 和 mysql 里面的 limit
      

  10.   

    同意5楼
    如oracle 的scott的emp表取6到10条记录
    select * from (select a.*,rownum nu from emp a where rownum <=10) y where y.nu >=6
      

  11.   

    SELECT * FROM(SELECT T.*,ROWNUM N FROM TU_USER T WHERE ROWNUM < ?)WHERE N > ?