今天的主要任務是進行分頁查詢
在實際使用中,如果查詢列表過長,不可能一次性的全部都顯示出來,所以需要進行分頁的操作。
參考分頁簡單製作
分頁技術還區分兩個:假分頁和真分頁
假分頁:一次性從資料庫讀出表的所有資料一次性的返回給客戶端,由js來控制每一頁的顯示。
真分頁:由程式控制,每一次只返回一頁大小的資料,顯示到客戶端。
由此可以很清楚的分辨出真假分頁各自的優缺點:
假分頁:由於一次性讀出所有資料並返回給客戶端,如果資料量龐大,所以這一次的動作可能是非常消耗伺服器資源和頻寬的,但是返回給客戶端以後就非常輕鬆了,客戶在一段時間內不會再像伺服器端請求資源。但不代表可能出現一些意外情況,比如說客戶將瀏覽器關閉,重新訪問**等。
真分頁:假分頁每次只取需要的資料返回給客戶端,比起真分頁沒有那麼大的資料庫壓力。但也因為這個工作特性,所以假分頁的方法需要頻繁和伺服器端進行互動。既然頻繁互動,自然也會給伺服器帶來負擔。
本次採用的是假分頁技術,分頁查詢:
a) 導架包
b) 寫配置檔案
c) 給service傳 page(當前頁頁碼), size(一頁顯示多少條),然後需要告訴serviceimpl 要開始用用分頁啦
d) 在controller 傳page, size,得到資料後傳給pageinfo,最後返回到頁面
本次需要的是寫好的分頁框架,首先是導架包:
!-- 分頁的配置資訊 --
>
"plugins"
>
"com.github.pagehelper.pageinterceptor"
>
"properties"
>
"helperdialect"
>mysql<
/prop>
"reasonable"
>true<
/prop>
<
/props>
<
/property>
<
/bean>
<
/array>
<
/property>
在pom.xml中匯入架包:
<
!-- 分頁架包 --
>
com.github.pagehelper<
/groupid>
pagehelper<
/artifactid>
5.1.2
<
/version>
<
/dependency>
就可以使用封裝好的分頁配置,
之後是在service中給service傳 page(當前頁頁碼), size(一頁顯示多少條)。
注意,在userdao中的函式依然是沒有int page和int size引數的。
最後是在controller 傳page, size,得到資料後傳給pageinfo,最後返回到頁面:
@autowired
private userservice userservice;
// 查詢所有
("/adfindalluser.do"
) public modelandview adfindalluser
(@requestparam
(defaultvalue =
"1")
int page, @requestparam
(defaultvalue =
"5")
int size)
其中@requestparam的作用是設定預設值,但是還有其他的很多用法,在這裡不做詳解。
將資料傳到user-manage介面後,需要對原來的jsp進行修改:
首先是頁面按鈕的改動:
"box-tools pull-right"
>
"pagination"
>
"$/user/adfindalluser.do?page=1&size=5" aria-label=
"previous"
>首頁<
/a>
<
/li>
"$/user/adfindalluser.do?page=$&size=5"
/a>
<
/li>
"1" end=
"$" var=
"pagenum"
>
"$/user/adfindalluser.do?page=$&size=5"
>$
<
/a>
<
/li>
<
/c:foreach>
"$/user/adfindalluser.do?page=$&size=5"
/a>
<
/li>
"$/user/adfindalluser.do?page=$&size=5" aria-label=
"next"
>尾頁<
/a>
<
/li>
<
/ul>
<
/div>顯示使用者的items也需要做出改動:
"user" items=
"$">
"ids" type=
"checkbox"
>
<
/td>
$<
/td>
$<
/td>
$<
/td>
$<
/td>
"text-center"
>
"#" class=
"btn bg-olive btn-xs"
>封禁/解封<
/a>
"#" class=
"btn bg-olive btn-xs"
>刪除<
/a>
<
/td>
<
/tr>
<
/c:foreach>效果如下:
武漢理工大學實訓記錄(JDBC封裝篇)
今日的學習主要是關於jdbc的封裝,昨天寫了一篇關於jdbc的登陸以及增刪查改,但是沒有使用比較規範的格式,所有的實現均寫在了乙個class裡,導致內容比較混亂以及難以維護。今日就是對昨天的程式進行封裝,方便維護。jdbc對於bean的封裝步驟如下 屬性封裝 get set user user ne...
武漢理工大學C語言 課內實驗
問題描述 1.求乙個三位數的各位數字 當 n 為 152 時,分別求出 n 的個位數字 digit1 十位數字 digit2 和百位數字 digit3 的值。2.三天打魚兩天曬網 中國有句俗語 三天打魚兩天曬網 假設某人從某天起,開始 三天打魚兩天曬網 問這個人在以後的第 n 天中是 打魚 還是 曬...
武漢理工大學數值分析課內實驗
二 用c語言實現幾個求常微分方程初值問題解的程式。euler方法及其改進 龍格 庫塔 runge kutta 方法 三 用c語言實現幾個非線性方程求根的程式。二分法 迭代法 迭代過程的加速 四 用c語言實現幾個求線性方程組解的程式。gauss消去法 總結數值分析課內實驗採用程式設計的思想去實現有關數...