武漢理工大學實訓記錄(分頁查詢篇)

2021-09-24 21:29:07 字數 3495 閱讀 5141

今天的主要任務是進行分頁查詢

在實際使用中,如果查詢列表過長,不可能一次性的全部都顯示出來,所以需要進行分頁的操作。

參考分頁簡單製作

分頁技術還區分兩個:假分頁和真分頁

假分頁:一次性從資料庫讀出表的所有資料一次性的返回給客戶端,由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消去法 總結數值分析課內實驗採用程式設計的思想去實現有關數...