分頁查詢的實現

2021-07-22 02:02:49 字數 852 閱讀 4334

真分頁:封裝查詢語句:

1.oracle

"select * from (select rownum r,t1.* from (" + statment + ") t1 where rownum<=" + (start - 1 + linenumber) + ") t2 where t2.r>=" + start

2.sqlserver

"select * from ( select row_number() over(" + orderby + ") as rownum ," + statmenttmp.substring(statmenttmp.tolowercase().indexof("select") + 6) + ") as t where rownum between " + (start > 1 ? start + 1 : start) + " and " + (start == 1 ? linenumber : start + linenumber)

3.mysql

"select * from (" + statment + ") tmptab limit " + (start > 0 ? start - 1 : start) + "," + linenumber

我們公司自己用的erp系統都是真分頁,**部分

假分頁:將查詢結果快取在httpsession或有狀態bean中,翻頁的時候從快取中取出一頁資料顯示。

這種方法有兩個主要的缺點:

一是使用者可能看到的是過期資料;

二是如果資料量非常大時第一次查詢遍歷結果集會耗費很長時間,並且快取的資料也會占用大量記憶體,效率明顯下降。

oracle分頁查詢的實現

分頁查詢格式 select from select a.rownum rn from select from table name a where rownum 40 where rn 21其中最內層的查詢select from table name表示不進行翻頁的原始查詢語句。rownum 40和...

查詢分頁的SQL實現

select top 10userinfo.user name,plan date,plan week,plan week day,plan week text from week plan inner join userinfo on userinfo.userid week plan.useri...

Hibernate分頁查詢的實現

設定分頁引數 query.setfirstresult firstresult setmaxresults maxresult 表示從第firstresult 1個物件開始,獲取接下來的maxresult個資料。setfirstresult 方法的引數是開始獲取物件的行數,從0開始編號 setmax...