乙個通用分頁類

2022-02-26 16:32:37 字數 2299 閱讀 4693

1、功能

這個通用分頁類實現的功能是輸入頁數(第幾頁)和每頁的數目,就能獲得相應的資料。

2、實現原理

分頁的實現通常分為兩種,一種是先把資料全查詢出來再分頁,一種是需要多少查詢多少,這裡使用第二種,所以就需要先實現在dao層能夠查詢一定範圍內的資料,這裡就實現通過id作為鍵值,查詢一定範圍內的資料的功能

dao層需要實現乙個返回id在乙個範圍內的資料,那就在dao層的介面中新增乙個這個方法:

listselectbyrange(@param("low") integer low, @param("high") integer high);

<

select

id="selectbyrange"

resultmap

="baseresultmap"

>

select

<

include

refid

="base_column_list"

/>

from t_user

where id

between #

and #

select

>

然後在service層的介面和類新增這樣乙個方法,這裡實現了輸入上下標返回乙個user的list:

public listfindbyrange(int low, int

high)

再然後是通用的分頁類,這裡的low和high,將在pagenumber當前頁數或limit被修改時同時被修改:

public

class pageentity

public

void setlow(int

low)

public

intgethigh()

public

void sethigh(int

high)

public listgetlist()

public

void setlist(listlist)

public

intgettotal()

public

void settotal(int

total)

public

intgetlimit()

public

void setlimit(int

limit)

public

intgetpages()

public

void setpages(int

pages)

public

intgetpagenumber()

public

void setpagenumber(int

pagenumber)

}

然後是測試類,其實這個測試類我是準備命名為manager類的,這樣dao層實現基本的資料庫操作,service層實現針對實體類的基本操作,然後manager類中實現前端的需求,然後api類,也就是jersey中就只需要呼叫manager中的方法即可,不過我還得在想想這樣是否合理。。。

總之先這樣寫著吧,test中將新增這樣的方法及實現:

public pageentitypaging(pageentitypageentity)
然後就是api類中呼叫了:

@path("hello")

public

class

jerseytest

return

stringbuilder.tostring();}}

3、實現效果:

先看看資料庫的資料吧:

然後是瀏覽器中使用時的狀態:

4、總結

這裡我實現了乙個pageentity類,這個類使用了泛型所以也支援其他類,目前實現的功能能夠傳入當前頁和每頁的數目,得到相應的資料,前端應該還需要我們返回,總的資料量,總共有多少頁等等的資料,不過這都是額外的操作了,實現也挺簡單的。通過在dao層新增方法,用sql語句計算出來,再給賦值就好了。

5、源**

源**可以從這裡獲取:

發布乙個最強的PHP通用分頁類

如果你學過asp.net,你一定知道它裡面有乙個叫datalist之類自帶的分頁功能十分強大,這裡的這個類就模擬了一部份這個功能,我敢用 強大 來定義它,是因為作為乙個通用的頁類,這個類真正做到了 通用 廢話少說,馬上介紹一下是如何使用的。1 先新建乙個用於測試的表 create table tes...

乙個分頁類

class page 獲得頁面uri,page為當前頁面傳遞的頁面值,var 為傳遞頁面的引數字串 private function get uri var page if else else if else return url 獲得頁面總數以及前一頁 後一頁 最後一頁 private funct...

乙個通用分頁查詢方法

為了簡化開發人員的 想寫乙個通用的分頁查詢方法,為了提交效率,其中有一段是分解hql語句,組成查詢總數的hql語句,實現如下 public paginationsupport findpagebyquery final string hsql,final object values,final in...