分頁功能的實現

2021-08-04 23:17:57 字數 1752 閱讀 3867

不多說,先放出主角:實現分頁功能的sql語句(news管理系統的分頁語句~~):

select  

newsno, news_title, news_context,news_author,news_pubdate,  news_type,readcount, news_images

from

(select rownum as r,t.*from

(select news_info.*from news_info  )t

where rownum<=?*3)

where r >(?-1)*3

這個sql語句就能實現每頁顯示3條資訊的分頁功能。

理解一下:

select news_info.*from news_info
查詢到的是表中所有的資訊。

select rownum as r,t.*from (select news_info.*from news_info  )t where rownum<=?*3
控制每頁查詢到的資訊數量

外面的r >(?-1)*3則實現「分」的功能,表示從哪一頁開始。3表示每一頁的新聞數量,?表示當前頁碼

個人理解是,裡面的where控制每頁的顯示數量,外面的where控制從哪開始。

先看一張,方便理解:

這是使用者所能看到和操作的功能。要實現分頁,需要知道兩個變數即可,當前頁pageno和總頁pagenums。為什麼呢?

所以,接下來我們就要考慮怎麼知道pageno和pagenums,即可。

舉個例項,要求實現新聞列表的分頁顯示功能。

分頁的總頁數不就是新聞的數量除以每頁顯示的新聞數量嗎?新聞的數量即獲取資料庫表中行數,每頁顯示新聞的數量是固定的值,下面暫且賦值為3。注意:取餘不為零就需要再給一頁來顯示新聞,即pagenums+1。

下面是獲取資料庫表中資料行數的sql語句:

select count(*) from news_info;
再用getint(1)從結果集中取出來。這裡的1理解為查詢結果的列號為1。

pageno我們都知道本身這個值從頁面上是獲取不到的,但是是從第一頁開始的,所以我們可以判斷是否為null,為null的話說明了,這一頁就是第一頁,賦值為1。然後,不為null,就從頁面獲取值,後一頁即pageno=

pageno=$。

基本方法上面都提及了。

下面送上我的專案例項:

jsp(c:when來控制檢視顯示):

$

$

1}">

首頁當前頁數:[$/$] 

末頁

servlet:

int pagenums = 0;

int newnums = infobiz.getnewsnums();

//總頁數的演算法,規定每頁顯示3條新聞

if (newnums%3==0) else

session.setattribute("pagenums", pagenums);

string pageno = null;

pageno = request.getparameter("pageno");

data list分頁功能的實現

data list分頁顯示功能的實現 1.定義靜態變數 private static phototables photos new phototables 儲存路徑列表 記錄所有頁和當前頁 private static int32 current pos 1 private static int32...

分頁功能的實現(servlet javabean)

select from book limit 0,4這句sql語句的意思就是 從book表中取資料的前四條資料。所以就可以使用 select from book limit x,y語句來實現分頁。所以要想實現分頁。必須要知道的有 int pagesize 頁面的最多商品個數 int currentp...

GrdView分頁功能的實現

1.設定grdview控制項的allowpaging屬性為true。2.設定grdview控制項的pagesize屬性為15 每頁15條資料 3.設定grdview控制項的pagesetting mode屬性為numeric。4.設定grdview控制項的pagesetting pagebutton...