web應用分頁

1. 場景描述

目前大部分的應用程序中都會用到分頁功能,以便減小前端瀏覽器及後臺服務器的壓力,以及其餘方面的考慮。前端

(1)分頁從概念上可分爲邏輯分頁和物理分頁,邏輯分頁主要是經過應用程序(前端或者後端)來分頁,是從數據庫中獲取查詢所有數據,而後經過java代碼處理或前端處理後,分頁展現給使用用戶。java

(2)物理分頁,物理分頁是指分頁操做是在數據庫完成的,按照數據庫關鍵字進行分頁,應用程序中按照數據庫分頁關鍵字進行sql拼接後執行查詢,完成分頁功能。mysql

2. 解決方案

2.1 邏輯分頁

邏輯分頁就很少說,不一樣的項目不同,原理就是從數據庫獲取數據後,根據業務邏輯進行處理而已。sql

2.2 物理分頁

不一樣的數據庫使用的分頁關鍵及方式不同,簡單介紹下經常使用的Oracle、mysql及postgresql怎麼進行的分頁。數據庫

2.2.1 mysql 分頁

(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;
2.2.2 postgresql分頁。

(1) 分頁語法服務器

select * from persons limit  A  offset  B;

(2) 分頁說明
A就是你須要顯示多少行;
B就是查詢的起點位置。oracle

2.2.3 oracle分頁

(1) 分頁語法框架

select rownum,t.* from F_KPI544_FEE_DETL t where rownum <10;

(2) 分頁說明

oracle是使用rownum進行的分頁,rownum只是一個僞列,每一張表中都有。

2.3 方案說明

(1)本文只是大概介紹了下分頁原理及各個數據庫如何分頁,分頁中還存在其餘的問題,好比mysql數據庫分頁offset越大,效率越低等問題就不詳說了。

(2)目前Java應用中經常使用的ORM框架-Mybatis,可使用插件pagerHelper進行分頁,支持oracle、mysql、postgresql等數據庫。

相關文章
相關標籤/搜索