1.概念
物理分页:利用数据库本身提供的分页方式,如mysql的limit,oracle的rownum,好处是效率高,不好的地方就是不同的数据库有不同的搞法。如hibernate采用的是物理分页。
逻辑分页:利用游标分页,好处是数据库兼容,坏处是效率太低。
真分页:确定要显示的页面内容数量,按需查询,效率高,但访问数据库频繁,大型网站都用真分页。
假分页:一次性从数据库查出所有的数据并在页面上显示。
2.常见的分页实现方式
sql:
MySQL :SELECT * FROM tablename LIMIT M,N;(M从哪里开始,N数据的条数)
Oracle: select * from (select s.* ,rownum rn from (select * from tablename) s where rownum<=10) where rn>==1;
存储过程
create or replace package testpackage as type test_cursor is ref cursor;
end testpackage;
create or replace procedure fenye
(tableName in varchar2,pageSize in number,
pageNow in number,myrows out number,
myPageCount out number,p_cursor out testpackage.test_cursor)
is
v_sql varchar2(1000);
v_begin number:=(pageNow-1)*pageSize+1;
v_end number:=pageNow*pageSize;
begin
v_sql:='select * from (select t1.*,ROWNUM rn from (select * from'||tableName||') t1 where rownum<='||v_end||')
where rn>=&#