更新時(shí)間:2020-10-20 17:05:26 來源:動力節(jié)點(diǎn) 瀏覽1593次
相信大家在學(xué)習(xí)javaweb時(shí),會遇到需要分頁顯示的情況。當(dāng)數(shù)據(jù)量太多,又同時(shí)顯示在一個(gè)頁面的話,不僅可能會造成內(nèi)存溢出,還會影響到用戶體驗(yàn),這個(gè)時(shí)候就需要實(shí)現(xiàn)javaweb分頁顯示的功能了。那么javaweb分頁顯示該怎樣實(shí)現(xiàn),怎么操作呢?
分頁功能在網(wǎng)頁中是非常常見的一個(gè)功能,其作用也就是將數(shù)據(jù)分割成多個(gè)頁面來進(jìn)行顯示,下面給出兩個(gè)javaweb分頁顯示方法。
一、借助數(shù)組進(jìn)行分頁
原理:進(jìn)行數(shù)據(jù)庫查詢操作時(shí),獲取到數(shù)據(jù)庫中所有滿足條件的記錄,保存在應(yīng)用的臨時(shí)數(shù)組中,再通過List的subList方法,獲取到滿足條件的所有記錄。
實(shí)現(xiàn):首先在dao層,創(chuàng)建StudentMapper接口,用于對數(shù)據(jù)庫的操作。在接口中定義通過數(shù)組分頁的查詢方法,如下所示:
方法很簡單,就是獲取所有的數(shù)據(jù),通過list接收后進(jìn)行分頁操作。創(chuàng)建StudentMapper.xml文件,編寫查詢的sql語句:
可以看出再編寫sql語句的時(shí)候,我們并沒有作任何分頁的相關(guān)操作。這里是查詢到所有的學(xué)生信息。接下來在service層獲取數(shù)據(jù)并且進(jìn)行分頁實(shí)現(xiàn),定義IStuService接口,并且定義分頁方法:
List
通過接收currPage參數(shù)表示顯示第幾頁的數(shù)據(jù),pageSize表示每頁顯示的數(shù)據(jù)條數(shù)。創(chuàng)建IStuService接口實(shí)現(xiàn)類StuServiceIml對方法進(jìn)行實(shí)現(xiàn),對獲取到的數(shù)組通過currPage和pageSize進(jìn)行分頁:
通過subList方法,獲取到兩個(gè)索引間的所有數(shù)據(jù)。這種方法實(shí)現(xiàn)javaweb分頁操作的缺點(diǎn):數(shù)據(jù)庫查詢并返回所有的數(shù)據(jù),而我們需要的只是極少數(shù)符合要求的數(shù)據(jù)。當(dāng)數(shù)據(jù)量少時(shí),還可以接受。當(dāng)數(shù)據(jù)庫數(shù)據(jù)量過大時(shí),每次查詢對數(shù)據(jù)庫和程序的性能都會產(chǎn)生極大的影響。
二、借助Sql語句進(jìn)行分頁
在了解到通過數(shù)組分頁的缺陷后,我們發(fā)現(xiàn)不能每次都對數(shù)據(jù)庫中的所有數(shù)據(jù)都檢索。然后在程序中對獲取到的大量數(shù)據(jù)進(jìn)行二次操作,這樣對空間和性能都是極大的損耗。所以我們希望能直接在數(shù)據(jù)庫語言中只檢索符合條件的記錄,不需要在通過程序?qū)ζ渥魈幚怼_@時(shí),Sql語句來實(shí)現(xiàn)javaweb分頁技術(shù)。
實(shí)現(xiàn):通過sql語句實(shí)現(xiàn)分頁也是非常簡單的,只是需要改變我們查詢的語句就能實(shí)現(xiàn)了,即在sql語句后面添加limit分頁語句。首先還是在StudentMapper接口中添加sql語句查詢的方法,如下:
然后在StudentMapper.xml文件中編寫sql語句通過limiy關(guān)鍵字進(jìn)行分頁:
接下來還是在IStuService接口中定義方法,并且在StuServiceIml中對sql分頁實(shí)現(xiàn)。sql分頁語句如下:
所以在service中計(jì)算出currIndex:要開始查詢的第一條記錄的索引。結(jié)果:從輸出結(jié)果可以看出和數(shù)組分頁的結(jié)果是一致的,因此sql語句的分頁也是沒問題的。
用SQL語句來進(jìn)行javaweb分頁顯示的缺點(diǎn):雖然這里實(shí)現(xiàn)了按需查找,每次檢索得到的是指定的數(shù)據(jù)。但是每次在分頁的時(shí)候都需要去編寫limit語句,很冗余。而且不方便統(tǒng)一管理,維護(hù)性較差。
這兩種javaweb分頁顯示實(shí)現(xiàn)方法是需要大家掌握的,但分頁顯示的方法不止借助數(shù)組和SQL語句,還可以用攔截器實(shí)現(xiàn),大家可以在javaweb教程中學(xué)習(xí)到所有分頁顯示的方法,并加以練習(xí),相信朋友們都可以掌握javaweb的相關(guān)技能。
初級 202925
初級 203221
初級 202629
初級 203743