jsp中的分頁問題

2021-08-31 21:50:19 字數 3282 閱讀 1023

jsp中的分頁是比較基礎的問題,也是乙個比較重要的問題,下面寫我自己的一點的看法:

首先貼一段分頁的**(這是我寫的,不唯一,且要使用的話需要修改一些東西):

// 實現分頁功能

int pagesize = 5;

int pagenow = 1;

int pagecount = 0;

int rowcount = 0;

string pagenow = req.getparameter("pagenow");

if (pagenow != null)

string page = req.getparameter("page");

if (page != null)

class.forname(

"com.microsoft.sqlserver.jdbc.sqlserverdriver").newinstance();

// 得到連線

string url = "jdbc:sqlserver://localhost:1433;databasename=aixinshizhe";

string user = "sa";

string password = "sa";

conn = drivermanager.getconnection(url, user, password);

// 建立statement

string sql = "select count(*) from users";

ps = conn.preparestatement(sql);

// 注意在寫sql語句時不要忘寫*,不要忘記寫'

rs = ps.executequery();

if (rs.next()) else

}// pw.println(pagecount);

ps = conn.preparestatement("select top "+ pagesize+ "* from users where userid not in(select top "+ pagesize * (pagenow - 1)+ " userid from users )");

// 給問號賦值

// ps.setint(1,pagesize);

// ps.setint(2,pagesize*(pagenow-1));

rs = ps.executequery();

pw.println("");

pw.println("");

pw.println("userid

username

passwd

email

grade

刪除修改

");while (rs.next())

pw.println("");

pw.println("首頁");

if (pagenow != 1)

// 按規定顯示頁碼連線

int control = 0;

if (pagenow + 6 <= pagecount) else

for (int i = pagenow; i <= control; i++)

if (pagenow != pagecount)

我認為分頁可以分為四部分,

首先,分別是確定pagesize,pagecount,pagenow,rowcount這四個變數,rowcount是從資料庫中得到的,pagesize是根據自己指定的,pagenow是在跳轉到哪一頁時指定的,而pagecount是通過pagesize和rowcount計算出來的,

其次,從資料庫中按照pagesize的大小讀取資料(讀出pagesize條資料)

再有,就是將讀出的資料顯示在**中,

最後,加入頁數的超連結,

注意:createstatement與preparestatement的區別

2011-06-28 21:29

preparestatement會先初始化sql,先把這個sql提交到資料庫中進行預處理,多次使用可提高效率。

createstatement不會初始化,沒有預處理,沒次都是從0開始執行sql

statement ─ 由方法 createstatement 所建立。statement 物件用於傳送簡單的 sql 語句。 

preparedstatement ─ 由方法 preparestatement 所建立。preparedstatement 物件用於傳送帶有乙個或多個輸入引數( in 引數)的 sql 語句。preparedstatement 擁有一組方法,用於設定 in 引數的值。執行語句時,這些 in 引數將被送到資料庫中。preparedstatement 的例項擴充套件了 statement ,因此它們都包括了 statement 的方法。preparedstatement 物件有可能比 statement 物件的效率更高,因為它已被預編譯過並存放在那以供將來使用。 

callablestatement ─ 由方法 preparecall 所建立。callablestatement 物件用於執行 sql 儲存程式 ─ 一組可通過名稱來呼叫(就象函式的呼叫那樣)的 sql 語句。callablestatement 物件從 preparedstatement 中繼承了用於處理 in 引數的方法,而且還增加了用於處理 out 引數和 inout 引數的方法。 

以下所列提供的方法可以快速決定應用哪個 connection 方法來建立不同型別的 sql 語句: 

createstatement 方法用於:

簡單的 sql 語句(不帶引數) 

preparestatement 方法用於: 

帶乙個或多個 in 引數的 sql 語句 

經常被執行的簡單 sql 語句

preparecall 方法用於: 

呼叫已儲存過程

例如:preparestatement可以替換變數

在sql語句中可以包含?,可以用ps=conn.preparestatement("select * from cust where id=?");

int sid=1001;

ps.setint(1, sid);

rs = ps.executequery();

可以把?替換成變數。

而statement只能用

int sid=1001;

statement stmt = conn.createstatement();

resultset rs = stmt.executequery("select * from cust where id="+sid);

來實現

jsp 簡單分頁

總記錄數 int count persondao.getcount 每頁顯示5條 int pagesize 5 當前頁 int currentpage 1 int pagecount count pagesize 1 pagesize string currentpgae request.getpa...

jsp頁面分頁

首先要定義四個變數 int pagesize 每頁顯示多少條記錄 int pagenow 希望顯示第幾頁 int pagecount 一共有多少頁 int rowcount 一共有多少條記錄 說明 pagesize是指定的 pagenow是使用者選擇的 rowcount是計算出來的 該計算式為 if...

jsp分頁總結

jsp分頁思路 1.變數的設定 分頁中涉及的變數主要有 總頁數,每頁顯示的記錄數,當前頁數,總記錄數 pagesize 每個頁面所顯示的記錄數 pagecount 一共有多少個頁面 showpage 目前顯示第幾頁 recordcount 總的記錄數 為了方便理解,畫了一張圖 總頁數 總記錄數 每頁...