目前大部分的應用程序中都會用到分頁功能,以便減小前端瀏覽器及後臺服務器的壓力,以及其餘方面的考慮。前端
(1)分頁從概念上可分爲邏輯分頁和物理分頁,邏輯分頁主要是經過應用程序(前端或者後端)來分頁,是從數據庫中獲取查詢所有數據,而後經過java代碼處理或前端處理後,分頁展現給使用用戶。java
(2)物理分頁,物理分頁是指分頁操做是在數據庫完成的,按照數據庫關鍵字進行分頁,應用程序中按照數據庫分頁關鍵字進行sql拼接後執行查詢,完成分頁功能。mysql
邏輯分頁就很少說,不一樣的項目不同,原理就是從數據庫獲取數據後,根據業務邏輯進行處理而已。sql
不一樣的數據庫使用的分頁關鍵及方式不同,簡單介紹下經常使用的Oracle、mysql及postgresql怎麼進行的分頁。數據庫
(1) 分頁語法後端
SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset
(2) 分頁說明瀏覽器
select * from table limit 0,10; --從第0條開始,查詢10條數據。 select * from table limit 10,10; --從第10條開始,查詢10條數據。 ---通常經常使用的 select * from table limit 10; 至關於 select * from table limit 0,10;
(1) 分頁語法服務器
select * from persons limit A offset B;
(2) 分頁說明
A就是你須要顯示多少行;
B就是查詢的起點位置。oracle
(1) 分頁語法框架
select rownum,t.* from F_KPI544_FEE_DETL t where rownum <10;
(2) 分頁說明
oracle是使用rownum進行的分頁,rownum只是一個僞列,每一張表中都有。
(1)本文只是大概介紹了下分頁原理及各個數據庫如何分頁,分頁中還存在其餘的問題,好比mysql數據庫分頁offset越大,效率越低等問題就不詳說了。
(2)目前Java應用中經常使用的ORM框架-Mybatis,可使用插件pagerHelper進行分頁,支持oracle、mysql、postgresql等數據庫。