天天看點

Hibernate分頁代碼思路

1.查詢分頁資料,利用hibernate Query API:

Query [setFirstResult、setMaxResults]

其中firstResult為從那條記錄開始,maxResult為查詢多少條記錄,即每頁顯示條數

代碼:

Query q = session.createQuery("from Event e order by e.id asc");

q.setFirstResult(firstResult);

q.setMaxResults(pageSize);

List list = q.list();

2.pageSize、pageNo

但分頁時,我們知道的隻是顯示哪一個頁(pageNo),每頁顯示多少條(pageSize)

則相當于maxResults已知,需要計算firstResult值

3.計算firstResult,

int firstResult = (pageNo - 1) * pageSize;

4.需要校驗pageNo

if(pageNo <= 0) :如果傳遞負值或零,則預設顯示第一頁

if(pageNo > maxPages):比如,用6頁,卻要顯示第7頁,則預設顯示最後一頁

但maxPages未知

5.查詢maxPages

需要查詢總記錄數

select count(*) from Event e

6.OK