分頁查詢: 首先我們要明確什麼是分頁?為什麼要去分頁? 分頁就是將數據以多頁去展示,使用分頁可以提高客戶的感受。 分頁的分類: 1.物理分頁:只從資料庫中查詢當前頁的數據 優點:不占用很多記憶體 缺點:效率比價低(相比於邏輯分頁) 2.邏輯分頁:從資料庫將所有記錄查詢出來,存儲到記憶體中,展示當前頁,然 ...
分頁查詢:
首先我們要明確什麼是分頁?為什麼要去分頁?
分頁就是將數據以多頁去展示,使用分頁可以提高客戶的感受。
分頁的分類:
1.物理分頁:只從資料庫中查詢當前頁的數據
優點:不占用很多記憶體 缺點:效率比價低(相比於邏輯分頁)
2.邏輯分頁:從資料庫將所有記錄查詢出來,存儲到記憶體中,展示當前頁,然後數據再直接從記憶體中獲取
優點:效率高 缺點:占用記憶體比較高
大多數情況下,我們用的都是物理分頁。
物理分頁:
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用插件分頁的優缺點
最後還是手動分頁 算是對今天工作的總結吧。
往後繼續跟新分頁知識,包括mybatis分頁插件的運用 ,希望各路大神留言點評 補充 有錯誤之處也希望點出,謝謝!