分頁的實現

2021-08-19 10:18:32 字數 1452 閱讀 6952

分頁分為前端分頁和後端分頁,一下是兩者是簡單實現:

1. 前端分頁:

前端分頁一般用jquery外掛程式來實現,一般原理如下:

a. totalpage總頁數

b.totalcount符合條件的總記錄數

c.pagesize每頁顯示有多少

d.currentpage 當前第幾頁

e.pagestart 起始頁

f.pageend 末頁

2.後端實現

後端實現可以拼sql,但是在實際開發中多用外掛程式,比如pagehelper,當然也可以自己寫基於***的mybatis分頁外掛程式。

pagehelper外掛程式的主要功能就是開發者不需要每個pojo類的增刪改查裡都包括相關方法了,它幫你做了。開發者只需要有乙個selectall的方法,它會根據你使用的資料庫來將你selectall的sql改裝成乙個分頁查詢的sql,並順帶生成乙個查詢總數的sql。

對應不同的資料庫有不同的方言,如常見的mysql,分頁關鍵字是limit,它就是這樣組裝成需要的sql。

@override  

public string getpagesql(string sql, page page, cachekey pagekey) else

pagekey.update(page.getpagesize());

return sqlbuilder.tostring();

}

pagehelper不僅幫你分頁查詢了資料,在返回時直接返回page物件,裡更是封裝了許多分頁資訊。但是在前後臺json資料互動時,由於page物件繼承自arraylist,json不會保留其分頁資訊,所以在使用時往往是這樣使用的:

@override  

public pageinfoselectallpublictopicpost(int pagenum) catch (exception e)

return topicpostlist;

}

即將查詢出來的page轉為pageinfo(沒有繼承arraylist),將你的pageinfo返回給前台就可以了。

通過上述例子,我們可以看到pagehelper的優缺點。

優點:封裝分頁sql,使我們不需要每個地方都去寫分頁的查詢語句;同時,使我們select的sql語句向下相容,換了資料庫也不需要更改sql**;

缺點:自帶的page物件轉json時會丟失分頁資料;而轉為pageinfo物件時分頁資訊過多(這一點作者已在github上說明,建議自己實現pageinfo)

總結:實際的專案中,還是後端進行分頁為好,不要使用前端分頁,因為前端分頁基本是一次性把所有資料獲取下來,然後前端才開始進行分頁,導致頁面效能下降(客戶端需要花時間處理),所以建議還是用後端處理分頁,前端傳送ajax請求獲取資料(按需載入)。

分頁的實現,

class page this url script implode p page this first this getfirst this last this getlast this prev this getprev this next this getnext private functi...

分頁的實現

首先我們需要清楚的是,前台有後台的 這個分頁的功能 前端要想後台請求的引數為 page 當前頁 rows m每頁大小 sortby 排序字段 desc 是否為降序 key 查詢的關鍵 後台要想前台響應的話,我們就需要有響應的結果即可 total 總條數 items 當前頁資料 totalpage 有...

mysql實現分頁 MySQL如何實現分頁查詢

mysql中實現分頁查詢 在資料量較小的情況下可使用limit查詢來實現分頁查詢,在資料量大的情況下使用建立主鍵或唯一索引來實現,另外可通過order by對其排序 一般情況下在mysql中進行分頁查詢時,會用到limit查詢,而且在查詢中都會使用到order by來進行排序。接下來將具體介紹mys...