分頁查詢: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用插件分頁的優缺點
最後仍是手動分頁 算是對今天工做的總結吧。