<%--?? 功能:JSP數(shù)據(jù)庫(kù)操作例程?-?數(shù)據(jù)分頁(yè)顯示?-?JDBC?2.0?-?Oracle?? --%>??
<%@?page?contentType=\"text/html;charset=8859_1\"?%>??
<%?? //變量聲明?? 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中沒有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)程序?? java.sql.DriverManager.registerDriver(new?oracle.jdbc.driver.OracleDriver());??
//設(shè)置數(shù)據(jù)庫(kù)連接字符串?? strCon?=?\"jdbc:oracle:thin:@linux:1521:ora4cweb\";??
//連接數(shù)據(jù)庫(kù)?? sqlCon?=?java.sql.DriverManager.getConnection(strCon,\"hzq\",\"hzq\");??
//創(chuàng)建一個(gè)可以滾動(dòng)的只讀的SQL語(yǔ)句對(duì)象?? sqlStmt?=?sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);??
//準(zhǔn)備SQL語(yǔ)句?? strSQL?=?\"select?name,age?from?test\";??
//執(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ù)操作例程?-?數(shù)據(jù)分頁(yè)顯示?-?JDBC?2.0?-?Oracle</title>?? </head>??
<body>??
<table?border=\"1\"?cellspacing=\"0\"?cellpadding=\"0\">?? <tr>?? ?<th>姓名</th>?? ?<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>?? ?<td><%=sqlRst.getString(2)%></td>?? </tr>?? <%?? sqlRst.next();?? i++;?? ?}?? }?? %>??
</table>??
第<%=intPage%>頁(yè)??共<%=intPageCount%>頁(yè)??<%if(intPage<intPageCount){%><a?href=\"jdbc20-oracle.jsp?page=<%=intPage+1%>\">下一頁(yè)</a><%}%>??<%if(intPage>1){%><a?href=\"jdbc20-oracle.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(); |