Mybatis 實現物理分頁的簡單實現

Mybatis 實現物理分頁的簡單實現

分頁查詢:html

首先咱們要明確什麼是分頁?爲何要去分頁?前端

分頁就是將數據以多頁去展現,使用分頁能夠提升客戶的感覺。mysql

 

分頁的分類:sql

1.物理分頁:只從數據庫中查詢當前頁的數據數據庫

優勢:不佔用不少內存   缺點:效率比價低(相比於邏輯分頁)mybatis

2.邏輯分頁:從數據庫將全部記錄查詢出來,存儲到內存中,展現當前頁,而後數據再直接從內存中獲取oracle

優勢:效率高              缺點:佔用內存比較高app

 

大多數狀況下,咱們用的都是物理分頁。函數

物理分頁:post

1.直接用jdbc完成:使用滾動結果集  

優勢:跨數據庫     缺點:性能低

2.使用數據庫自己提供的分頁操做:使用每個數據庫特定的分頁函數

優勢:性能高       缺點:不能跨數據庫

 

mysql  :       limit

SQL service: top

oracle:         rownum 

 

我用 都是mysql 因此就說下limit

select * from 表 limit m,n;

m:表明是從第幾條開始(它是從0開始算的)

n:表明查詢幾條記錄

假如咱們要顯示3條記錄,要查詢第2頁的數據

那麼select * from 表 limit (頁面-1)* 每頁每條,每頁條數;

 

接着咱們開始編寫實體類

省略了get\set方法

用語封裝所要的東西 提供給前端

 

接着在所對應的mapper中編寫:

這裏要注意:

1.兩個參數 必需要用0,1 不能用名字 會報錯

2.sql是不能作計算的,要把公式算完後再代進去,否則就會報錯

 

編寫service層

 

這裏的pageNum是每頁要顯示的條數,通常咱們後臺本身設置

currentPage是前臺傳來的第幾頁

這些咱們在控制層模擬下就行 控制層就省略了

 

最終返回頁面的結構就是分頁的結果了

 

pageNum對應的就是當前頁0

而後每頁顯示的條數就是2

其餘省略了 查出來後填進去就行

通各位大神分析了mybatis用插件分頁的優缺點

最後仍是手動分頁 算是對今天工做的總結吧。

相關文章
相關標籤/搜索