我終於理解了JSP 的分頁了

2021-03-31 15:58:26 字數 3121 閱讀 3669

我們查詢資料庫的時候

,如果查詢出來的結果是很多條,比如

1000條,

那麼,

如果都顯示到乙個頁面上簡直是令人無法忍受的事情

!所以我們要分頁顯示

,每頁顯示10或

20行

,分頁的目的就這樣簡單

.分頁的方法有很多種

,也許有些效率要高些

,我這裡只能參考最簡單能實現的方法

:現查找出有多少條記錄

,然後計算出一共分幾頁

,然後分別顯示每一頁

.查詢出有多少條記錄:

select count(*)from learning

計算分多少頁:

if(counts%pagesizes==0)

else

int i=(intpage-1)*pagesizes;(

書上的演算法很笨

,用我這裡自己想的

,沒有錯

)上面就是判斷是否最後一頁顯示滿,如

, 93

條記錄,

每頁顯示5條

,那麼最後一頁要顯示3條

,一共

19頁顯示

!開始考慮的時候我考慮

100頁,哈哈

,很特殊的

,不具有代表性

,看來思維的方法很重要

,弱智吧

?然後就是分別顯示這些頁了

,string query=" select * "+

" from learning "+

" where article_id like '%' ";

這裡我們遇到麻煩了

,如何顯示

?是先查出

5條放在**

?乙個什麼樣的資料結構裡

?還是劃分資料庫的記錄的條數

?也許從這裡我們可以考慮出分頁至少有

2種方法

:這裡我們採用後一種

,這種方法的內容是

:rs的遍歷和每頁多少條記錄的結合

:int i=(intpage-1)*pagesizes;//

判斷每一頁能遍歷到第幾條記錄

ps=conn.preparestatement(query);

resultset rs1=ps.executequery();

for( intj=0; j

rs1.next();//

當是第一頁的時候

,rs從第

0條開始

,如果是第二頁,從第

(2-1)*5

條元組開始遍歷

,如果第3頁

,將從第

10條開始遍歷最後:

while(rs1.next()&&i很關鍵

,即控制了每頁顯示的條數

,又控制了編歷的範圍

.最後有乙個問題是

: resultset rs1

為什麼不用原先的

rs?如果不理解這個

,可以說沒有理解到這種分頁的做法,因為

rs在查詢記錄總數的時候已經指向了第乙個

,如果繼續使用

,將從查詢出來的第二條記錄開始顯示了

!這個問題是我剛除錯好分頁時候出現的

bug,

看來都是先出現問題

,再分析原因

,再真正理解過程產生的原因

.下面還要在顯示分頁的內容之外加乙個

from ,

裡面提供鏈結來對當前頁數的

id+1(減1)

!剛理解了分頁

,就馬上記下來

,加深印象

,更不敢獨享領悟後的喜悅

!以下是

jsp

分頁的**

:*****************************

<%cookie cookies=request.getcookies();

if(cookies==null)

%>

<%@ include file="articleconn.jsp"%>

<%

request.setcharacterencoding("big5");

string query=" select * "+

" from learning "+

" where article_id like '%' ";

string querycount=" select count(*)from learning ";

string strpage=request.getparameter("strpage");

int intpage;

if(strpage==null)

else

intpage=integer.parseint(strpage);

int pagesizes=5;

int counts=1;

int pagecounts=1;

try%>

管 理 界 面

<%-- 分頁 --%>

新增資訊

返回首頁

id 號

類 型

信 息 名 稱

修 改

刪 除

<%

if(counts%pagesizes==0)

else

int i=(intpage-1)*pagesizes;

ps=conn.preparestatement(query);

resultset rs1=ps.executequery();

for( int  j=0; j

<%= rs1.getstring("article_id")%>

<%= rs1.getstring("types")%>

<%= rs1.getstring("title")%>

">修 改

">刪 除

<% i++;}%>

<%

}catch(sqlexception se1)

finally{}

stmt.close();

conn.close();

%>

我終於理解了閉包

本文寫於 2020 年 5 月 14 日 閉包這個詞一聽就很高階,令人害怕。但實際上,閉包非常的強大,js 的精髓之一就是閉包。實際上,我們經常在使用閉包,而不自知!kyle simpson 在書中將掌握閉包,比喻為 不像 luke 一樣接受訓練才能掌握原力,而是像 neo 見到矩陣一樣。我們其實一...

非對稱加密,我終於理解了!

北京的bob發了乙個快遞到廣州的alice,途中經過了上海,上海快遞中心出現了乙個黑客h,他偷偷開啟了bob給alice的快遞,然後偷偷把裡邊的衣服剪爛,再按照原樣包裝好發往廣州,可以看到對於這樣簡單包裝的傳輸在中途是可以偷偷修改裡邊的東西。http的資料報是明文傳輸,也即是如果中途某個黑客嗅探到這...

我終於理解輾轉相除法了

輾轉相除法 有兩整數a和b a b a b得餘數c 若c 0,則b即為兩數的最大公約數 若c 0,則a b,b c,再回去執行 例如求27和15的最大公約數過程為 27 15 餘12 15 12餘3 12 3餘0因此,3即為最大公約數 要想解釋輾轉相除法的原理,需要先知道以下兩點 一 乙個一般定理 ...