簡單的整理了一下分頁,希望對初學者有協助

來源:互聯網
上載者:User

準備工作:
在Oracle下,建立一張表:
CREATE TABLE mytable(id int, name varchar(32))
/

往表mytable裡插入一些值。

testpage.jsp頁面程式如下:

<!--
  簡單的分頁樣本,demo
-->
<%@page import="java.util.*"%>
<%@page import="java.lang.*"%>
<%@page import="java.io.*"%>
<%@page import="java.sql.*"%>
<%@page import="java.net.*"%>
<%@page contentType="text/html;charset=GBK" %>

<%
  String sConn="jdbc:oracle:thin:@host:1521:orcl"; 
  Class.forName("oracle.jdbc.driver.OracleDriver"); 
  Connection conn=DriverManager.getConnection(sConn,"user","password"); 
  Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY); 
  //Statement stmtcount=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 

  ResultSet rs=stmt.executeQuery("select * from mytable"); 
  //String sqlcount="select count(*) from mytable"; 
  //ResultSet rscount=stmtcount.executeQuery(sqlcount); 

  int pageSize=5; //每頁5條 
  int rowCount=0; //總的記錄數 

  rs.last();
  rowCount = rs.getRow();

int pageCount; //總的頁數 
int currPage = 0; //當前頁數 
String strPage; 
strPage=request.getParameter("page"); 

if (strPage==null){ 
  currPage=1; 

else{ 
  currPage=Integer.parseInt(strPage); 
  if (currPage<1) currPage=1; 

pageCount=(rowCount+pageSize-1)/pageSize; 
if (currPage>pageCount) currPage=pageCount; 

int thepage=(currPage-1)*pageSize; 
int n=0; 
 
%>

當前為第:<%=currPage%>頁<p>

<a href="testpage.jsp?page=1">首 頁</a> 

<%
  if (currPage>1){
%>
  <a href="testpage.jsp?page=<%=currPage-1%>">上一頁</a>  
<%
  }
%>
<%
  if (currPage<pageCount){
%>
  <a href="testpage.jsp?page=<%=currPage+1%>">下一頁</a>  
<%
  }
%>
<a href="testpage.jsp?page=<%=pageCount%>">尾 頁</a><p><br><hr>
共<%=rowCount%>條記錄 頁次:<%=currPage%>/<%=pageCount%>頁    <%=pageSize%>條/頁  

<table width="80%">
<%
  if (currPage>0){
    rs.absolute(thepage+1);
    while (n<pageSize && !rs.isAfterLast()){
      out.println("<tr><td>");
      out.println(rs.getInt(1)+"</td><td>");
      out.println(rs.getString(2)+"</td></tr>");
      rs.next();
      ++n;
    }

  }
%>

<%
  rs.close(); 
  //rscount.close(); 
  stmt.close(); 
  //stmtcount.close(); 
  conn.close(); 
%> 

//偶在Oracle8.1.6上測試,結果能顯示出來,但是name欄位值給的好像是16進位位元組串。但在Oracle8.1.7以後都沒問題。可能是jdbc的支援程度不一樣。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.