JSP數(shù)據(jù)分頁(yè)實(shí)例:MySQL翻頁(yè)
JSP數(shù)據(jù)庫(kù)操作可以實(shí)現(xiàn)JSP數(shù)據(jù)分頁(yè)。本文提供了一個(gè)MySQL分頁(yè)的例子。
一、運(yùn)行前準(zhǔn)備
下載了mysql的jdbc驅(qū)動(dòng)(一個(gè)jar文件)并加載在CLASSPATH。
建一個(gè)MySQL數(shù)據(jù)庫(kù)test
數(shù)據(jù)庫(kù)中有一個(gè)表:note,字段為:name(varchar)
二、下載,安裝
- < %@ page contentType="text/html;charset=gb2312" %>
- < % java.sql.Connection sqlCon; //數(shù)據(jù)庫(kù)連接對(duì)象
- java.sql.Statement sqlStmt; //SQL語(yǔ)句對(duì)象
- java.sql.ResultSet sqlRst; //結(jié)果集對(duì)象
- java.lang.String strCon; //數(shù)據(jù)庫(kù)連接字符串
- java.lang.String strSQL; //SQL語(yǔ)句
- int intPageSize; //一頁(yè)顯示的記錄數(shù)
- int intRowCount; //記錄總數(shù)
- int intPageCount; //總頁(yè)數(shù)
- int intPage; //待顯示頁(yè)碼
- java.lang.String strPage;
- int i;
- //設(shè)置一頁(yè)顯示的記錄數(shù)
- intPageSize = 2;
- //取得待顯示頁(yè)碼
- strPage = request.getParameter("page");
- if(strPage==null){
- //表明在QueryString中沒(méi)有page這一個(gè)參數(shù),此時(shí)顯示第一頁(yè)數(shù)據(jù)
- intPage = 1;
- } else{
- //將字符串轉(zhuǎn)換成整型
- intPage = java.lang.Integer.parseInt(strPage);
- if(intPage< 1) intPage = 1;
- }
- //裝載JDBC驅(qū)動(dòng)程序
- Class.forName("org.gjt.mm.mysql.Driver").newInstance();
- //連接數(shù)據(jù)庫(kù)
- sqlCon= java.sql.DriverManager.getConnection("jdbc:mysql://localhost/test");
- //創(chuàng)建語(yǔ)句對(duì)象
- sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.
- ResultSet.CONCUR_READ_ONLY); //執(zhí)行SQL語(yǔ)句
- strSQL = "select name from note";
- //執(zhí)行SQL語(yǔ)句并獲取結(jié)果集
- sqlRst = sqlStmt.executeQuery(strSQL);
- //獲取記錄總數(shù)
- sqlRst.last();
- intRowCount = sqlRst.getRow();
- //記算總頁(yè)數(shù)
- intPageCount = (intRowCount+intPageSize-1) / intPageSize;
- //調(diào)整待顯示的頁(yè)碼
- if(intPage>intPageCount) intPage = intPageCount;
- %>
- < html>
- < head>
- < meta http-equiv="Content-Type" content="text/html; charset=gb2312">
- < title>JSP數(shù)據(jù)庫(kù)操作例程 - JSP數(shù)據(jù)分頁(yè)顯示 - JDBC 2.0 - mysql< /title>
- < /head>
- < body>
- < table border="1" cellspacing="0" cellpadding="0">
- < tr>
- < th>姓名< /th>
- < /tr>
- < % if(intPageCount>0)
- {
- //將記錄指針定位到待顯示頁(yè)的第一條記錄上
- sqlRst.absolute((intPage-1) * intPageSize + 1);
- //顯示數(shù)據(jù)
- i = 0;
- while(i< intPageSize && !sqlRst.isAfterLast()){ %>
- < tr>
- < td>
- < %=sqlRst.getString(1)%>
- < /td>
- < /tr>
- < % sqlRst.next();
- i++;
- }
- }
- %>
- < /table>
- 第< %=intPage%>頁(yè) 共< %=intPageCount%>頁(yè)
- < %if(intPage< intPageCount){%>< a href="mysqlpage.jsp?page=< %=intPage+1%>">下一頁(yè)< /a>< %}%>
- < %if(intPage>1){%>< a href="mysqlpage.jsp?page=< %=intPage-1%>">上一頁(yè)< /a>< %}%>
- < /body>
- < /html>
- < %
- //關(guān)閉結(jié)果集
- sqlRst.close();
- //關(guān)閉SQL語(yǔ)句對(duì)象
- sqlStmt.close();
- //關(guān)閉數(shù)據(jù)庫(kù)
- sqlCon.close();
- %>
如何運(yùn)行JSP數(shù)據(jù)分頁(yè)?
將代碼存為文件test.jsp
Orion Application Server下:
Copy到orion的default-web-app目錄下,通過(guò):
- http://localhost:port/test.jsp
訪問(wèn)測(cè)試
對(duì)于Resin,Tomcat,JWS等等,都可以運(yùn)行通過(guò)。JSP數(shù)據(jù)分頁(yè)的實(shí)現(xiàn)方法到此介紹完畢。
【編輯推薦】