1、資料庫分頁技術的基本思想:
(1)、确定記錄跨度。即确定每頁顯示資料的條數。
(2)、擷取記錄總數。即擷取要顯示在頁面中的總記錄數。其目的是依據總記錄數來技術得到總頁數。
(3)、确定分頁後的總頁數。依據公式“總記錄數/跨度”計算分頁後的總頁數。要注意的是:如果總頁數有餘數,要去掉餘數,将總頁數加1。修改為:(總記錄數-1)/跨度+1
(4)、根據目前頁數顯示資料。注意:如果該頁數小于1,則使其等于1;如果頁數大于最大頁數,則使其等于最大頁數。
(5)、通過For循環語句分頁顯示資料。
2、使用标準的SQL語句實作資料分頁:
(1)、擷取前n條資料:
SELECT TOP n[PERCENT] *
FROM TABLE
WHERE ......
ORDER BY......
(2)、擷取分頁資料:
在java中通過參數來擷取分頁資料:
String sql="select top "+pageSize+"* from table where id not in (select top"+(page-1)*pageSize+" id from table order by id ASC ) order by id ASC";
其中:
pageSize:英語指定分頁後每頁顯示的資料
page:用于指定目前頁數
3、MySQL資料庫分頁:
MySQL資料庫提供了LIMIT函數課一友善實作分頁:
SELECT [DISTINCT|UNIQUE]( *,columname [as alias])
FROM TABLE
WHERE ......
ORDER BY......
LIMIT [offset],rows
eg:
String strSql = "select * from tb_orderform order by id limit "+(page-1)*pagesize+","+pagesize+"";
4、Hibernate分頁:
Hibernate對分頁也提供了很好的支援,可以利用HQL和QBC檢索方式實作資料分頁。
eg:從索引位置3開始的6條記錄。
(1)、HQL方式:
Query query=session.createQuery("from User");
query.setFirstResult(3);
query.setMaxResult(6);
(2)、QBC方式:
Criteria criteria=session.createCriteria(User.class);
createria.setFirstResult(3);
createria.setMaxResult(6);