描述基于JSP,servlet,jdbc,oracle构架中,实现分页显示的思路

解决方案 »

  1.   

    关键就是 Oracle 的分页语句,在 Oracle 中有两种分页 SQL 语句:一、使用 ROWNUM 这个伪列进行分页,需要嵌套两个子查询:SELECT * FROM (
      SELECT t.*, rownum AS rn FROM (
        SELECT * FROM t_news m ORDER BY m.id
      ) t
    ) x
    WHERE x.rn >= 6 AND x.rn <= 10;
    二、使用 row_number() 分析函数,需要嵌套一个子查询:SELECT * FROM (
      SELECT t.*, row_number() OVER(ORDER BY id) AS rn FROM t_news t
    ) x
    WHERE x.rn >= 6 AND x.rn <= 10;
      

  2.   

    假如考官问如果用sql server 或者mysql又怎么实现呢
      

  3.   


    即便分页查询,我觉得还是不解决问题。
    撇开数据库不同因素,效率也极低。
    如果查询流量大,DB会拖死。
    觉得这个问题已经远远超过jdbc,db所能处理的。
      

  4.   

    sql写法不同select top 10 * from ..
      

  5.   


    LZ说明了用Oracle数据库 所以不用考虑什么兼容性 另外 如果说要写公共的话大可以使用ResultSet分页