翻页显示,是连db2的,你改一下驱动就可以了
<%@ page contentType="text/html;charset=gb2312"%>
<html> 
<head>
<title></title>
</head> 
<body> 
<% 
java.sql.Connection sqlCon; 
java.sql.Statement sqlStmt; 
java.sql.ResultSet sqlRst; 
java.lang.String strCon; 
java.lang.String strSQL; 
int intPageSize; 
int intRowCount; 
int intPageCount; 
int intPage; 
java.lang.String strPage; 
int i,j,k;  
intPageSize = 10;  
strPage = request.getParameter("page"); 
if(strPage==null){
intPage = 1; 
} else{
intPage = java.lang.Integer.parseInt(strPage); 
if(intPage<1) intPage = 1; }
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver"); 
strCon = "jdbc:db2:sample"; 
sqlCon = java.sql.DriverManager.getConnection(strCon,"",""); 
sqlStmt = sqlCon.createStatement(); 
strSQL = "select count(*) from org"; 
sqlRst = sqlStmt.executeQuery(strSQL); 
sqlRst.next(); 
intRowCount = sqlRst.getInt(1); 
sqlRst.close(); 
intPageCount = (intRowCount+intPageSize-1) / intPageSize; 
if(intPage>intPageCount) intPage = intPageCount; 
strSQL = "select * from org"; 
sqlRst = sqlStmt.executeQuery(strSQL);
i = (intPage-1) * intPageSize; 
for(j=0;j<i;j++) sqlRst.next(); %> 
<table border="1"> 
<tr> 
<td colspan=5 align=center> 
<%=intPage%>/<%=intPageCount%>
<%if(intPage != 1){%>
<a href="pagedb2.jsp?page=1">first</a>
<%}else{%>
first
<%}%>
<%if(intPage>1){%>
<a href="pagedb2.jsp?page=<%=intPage-1%>"><<</a>
<%
}else{
%> 
<<
<%}%>
<%if(intPage<intPageCount){%>
<a href="pagedb2.jsp?page=<%=intPage+1%>">>></a>
<%
}else{
%> 
>>
<%}%>
<%if(intPage != intPageCount){%>
<a href="pagedb2.jsp?page=<%=intPageCount%>">last</a>
<%}else{%>
last
<%}%>
all<%=intRowCount%>row
</td> 
</tr>
<tr> 
<td>deptnumb</td>
<td>deptname</td>
<td>manage</td>
<td>division</td>
<td>location</td>
</tr> 
<% 
i = 0; 
while(i<intPageSize && sqlRst.next()){ %> 
<tr> 
<td><%=sqlRst.getString(1)%></td>
<td><%=sqlRst.getString(2)%></td>
<td><%=sqlRst.getString(3)%></td>
<td><%=sqlRst.getString(4)%></td>
<td><%=sqlRst.getString(4)%></td>
</tr> 
<% i++; } %>
</table> 
<% 
sqlRst.close(); 
sqlStmt.close(); 
sqlCon.close();
%>
</body> 
</html>

解决方案 »

  1.   

    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
    <jsp:useBean id="workM" scope="page" class="DBUSE.DBuse"/> <html>
    <head>
    <meta http-equiv="Content-Language" content="zh-cn">
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>留言板</title>
    </head>
    <body><table align="center" border="0" cellPadding="3" cellSpacing="0" class="p9" width="630">
      <tbody>
        <tr>
          <td bgColor="#f0f0f0" height="25" width="40%">
            <p align="center">企业留言板</p>
          </td>
          <td height="25" width="30%">&nbsp;</td>
          <td height="25" style="LETTER-SPACING: 1px" width="30%">|<a href="lyb.jsp">填写留言</a>|<a href="index.jsp" target="_top">回 首 页</a>|</td> 
        </tr>
        <tr bgColor="#f0f0f0">
          <td colSpan="3" height="2"></td>
        </tr>
      </tbody>
    </table>
    <br>
    <table align="center" bgColor="#f0f0f0" border="0" cellPadding="2" cellSpacing="1" class="pc1" width="630">
      <tbody>
        <tr>
          <td align="middle" colSpan="3" height="20"><font color="#666666"><b class="p14">查看留言</b></font></td>
        </tr>
      </tbody>
    </table>
    <% String interprise_code="xb2my";
     String sqlselect="select t_message.WORD_ID,t_message.WORD_TITLE,t_message.NICKNAME,t_message.EMAIL,t_message.MESSAGE_DATE,t_message.CONTENT,t_base_face.P_DESCRIPTION from t_message,t_base_face where t_base_face.ID=t_message.FACE_SCULPT  and t_message.ENTERPRISE_CODE='"+interprise_code+"'";
    ResultSet rs=workM.executeQuery(sqlselect);
    int maxrow=0;//最大行数
    int pages=0;//总页数
    int nowpage=0;//当前页
    int rows=10;//每页显示的记录数
    String nowpagestr=null;
    nowpagestr=request.getParameter("nowpage");
    if(nowpagestr==null)
    {
    nowpage=1;
    }
    else
    {
    nowpage=Integer.parseInt(nowpagestr);
    }
       while(rs.next())
           {
                     maxrow+=1;
            }
    //rs.beforefirst();
    //rs.afterLast();
    pages=(maxrow+rows-1)/rows;
    if(nowpage>=pages)
    {
    rs.afterLast();
    nowpage=pages;
    }
    else if(nowpage<1)
    {
    nowpage=1;
    rs.absolute((nowpage)*2+1);
    }
    else
    {
    rs.absolute((nowpage)*2+1);
    //rs.absolute(3);
    }
    //int rn=rs.getRow();
    //out.println(rn);
    %>
    <table align="center" border="0" cellPadding="0" cellSpacing="0" class="p9" width="630">
      <tbody>
        <tr>
          <td colSpan="2" height="10"></td>
        </tr>
      <tbody>
        <tr><form action="showmesg2.jsp" method="post" name="turn" >
          <td height="24" width="32%">共有留言<%=maxrow%>条 第<%=nowpage%>页/总<%=pages%>页</td>  
          <td align="right" width="68%">| <a href="showmesg2.jsp?nowpage=1">首页</a> | <a href="showmesg2.jsp?nowpage=<%=nowpage-1%>">上页</a>   
            | <a href="showmesg2.jsp?nowpage=<%=nowpage+1%>">下页</a> | <a href="showmesg2.jsp?nowpage=<%=pages%>">尾页</a>   
            转到第<input class="p9" maxLength="3" name="nowpage" size="3" style="BORDER-BOTTOM: rgb(200,200,200) 1px solid; BORDER-LEFT: rgb(200,200,200) 1px solid; BORDER-RIGHT: rgb(200,200,200) 1px solid; BORDER-TOP: rgb(200,200,200) 1px solid" value="<%=nowpage+2%>">   
            页 <input class="s02" name="cmd_goto"  style="FONT-FAMILY: Verdana; HEIGHT: 19px; WIDTH: 30px" type="submit" value="Go" hideFocus>
    </form>
    </td>  
        </tr>
        <tr>
          <td bgColor="#f0f0f0" colSpan="2">
        
        <%
    int num=0;//记录本页的显示个数
    while(rs.previous() && num<2)

    //<%=rs.getString("P_DISCRIPTION")
    //String face_sculpt=rs.getString("FACE_SCULPT");
    //String sqlselect2="select P_DESCRIPTION from T_BASE_FACE  where ID='"+face_sculpt+"'";
    //ResultSet rs2=workM.executeQuery(sqlselect2); 
     %>   
        <table border="0" cellPadding="2" cellSpacing="1" class="p9" width="100%">
              <tbody>
                <tr>
                  <td width="20%"><b><font color="#666666">&nbsp;<%=rs.getString("NICKNAME")%></font></b></td>
                  <td width="60%"><b><font color="#666666"><%=rs.getString("WORD_TITLE")%></font></b></td>
                  <td width="10%" valign="middle" align="center"><a href="modify2.jsp?WORD_ID=<%=rs.getString("WORD_ID")%>">修改</a></td>
                  <td width="10%" valign="middle" align="center"><a href="deletemesg.jsp?WORD_ID=<%=rs.getString("WORD_ID")%>">删除</a></td>
                  
                </tr>
                <tr bgColor="#ffffff" vAlign="top">
                  <td width="20%">表情:<img border="0" src="<%=rs.getString("P_DESCRIPTION")%>" width="18" height="18"><br>
                    <a href="mailto:<%=rs.getString("EMAIL")%>">EMAIL联系</a><br>
                  </td>
                  <td bgColor="#ffffff" colSpan="4">发表时间:<%=rs.getString("MESSAGE_DATE")%>
                    <hr>
                    <%=rs.getString("CONTENT")%><br>
                  </td>
                </tr>
              </tbody>
            </table>
    <%
    num+=1;
    }
     %>       
       
          </td>
        </tr>
        <tr>
          <td bgColor="#f0f0f0" colSpan="2" height="10"> </td>
        </tr>
        <tr><form action="showmesg2.jsp" method="post" name="turn" >
          <td height="24" width="32%">共有留言<%=maxrow%>条 第<%=nowpage%>页/总<%=pages%>页</td>  
          <td align="right" width="68%">| <a href="showmesg2.jsp?nowpage=1">首页</a> | <a href="showmesg2.jsp?nowpage=<%=nowpage-1%>">上页</a>   
            | <a href="showmesg2.jsp?nowpage=<%=nowpage+1%>">下页</a> | <a href="showmesg2.jsp?nowpage=<%=pages%>">尾页</a>   
            转到第<input class="p9" maxLength="3" name="nowpage" size="3" style="BORDER-BOTTOM: rgb(200,200,200) 1px solid; BORDER-LEFT: rgb(200,200,200) 1px solid; BORDER-RIGHT: rgb(200,200,200) 1px solid; BORDER-TOP: rgb(200,200,200) 1px solid" value="<%=nowpage+2%>">   
            页 <input class="s02" name="cmd_goto"  style="FONT-FAMILY: Verdana; HEIGHT: 19px; WIDTH: 30px" type="submit" value="Go" hideFocus>
    </form>
    </td>  
        </tr>
      </tbody>
    </table></body></html>刚开始学习的时候写得一段程序,里面很多地方的处理方法很笨拙,不过实现了分页的功能,你就凑或一下吧.其实我认为一个好的分页显示程序需要考虑的东西还有很多,除了将一些方法集成到类里面,还要考虑具体的应用,在数据很多的时候,这种一次性把所有记录取出来,然后分页显示的方法是不可取的.
      

  2.   

    jsp查书系统源码:http://yuehui.cn.gs/soft/sbook.rar(本系统就是分页实现的免费源码)
    自定查询源码:http://yuehui.cn.gs/soft/find.rar
    考试系统源码:http://yuehui.cn.gs/CPJS/ks_bb_gm.html
      

  3.   

    复制别人的
    一个连接池的javabean例子:
    public pool(){
     try { 
    Context env = new InitialContext(); 
    DataSource ds = (DataSource) env.lookup("java:comp/env/jdbc/OracleDB"); 
    if (ds == null) 
    throw new Exception("jdbc/OracleDB is an unknown DataSource"); 
    dbc = ds.getConnection(); 

    catch (Exception e) { 
    System.out.println("naming:" + e.getMessage()); 


     
     //<!-- 建立数据库连接及定义数据查询-->
     public ResultSet executeQuery(String sql){
      stmt=null;
      rs=null;
      try{
       stmt=dbc.createStatement();
      rs=stmt.executeQuery(sql);
            }
            catch(SQLException ex){
             System.err.println("aq.executeQuery:"+ex.getMessage());
            }
            return rs;
     }
     //<!-- 建立数据操作-->
     public int executeUpdate(String sql){
      stmt=null;
      resultNum=0; 
      try{
      stmt=dbc.createStatement();
      resultNum = stmt.executeUpdate(sql);
            }
            catch(SQLException ex){
             System.err.println("aq.executeQuery:"+ex.getMessage());
            }
            return resultNum; 
     }  public void close() { 
    try { 
    if (rs != null) { 
    rs.close(); 
    rs = null; 

    if (stmt != null) { 
    stmt.close(); 
    stmt = null; 

    if (cstmt != null) { 
    cstmt.close(); 
    cstmt = null; 

    if (dbc != null) { 
    dbc.close(); 
    dbc = null; 

    } catch (SQLException ex) { 
    System.out.println("close error: " + ex.getMessage()); 

        } 
    }
      

  4.   

    <%
    out.print ("<table width=570 border=0 align=center cellpadding=0 cellspacing=1 bordercolor=#003399 bgcolor=#003399> <tr bgcolor=#E3E3E3 height=30><td> <div align=center>出入证号</div> </td><td> <div align=center>办证人</div> </td> <td> <div align=center>生效日期</div> </td> <td> <div align=center>到期日期</div> </td><td> <div align=center>删除</div></td></tr>");
                 
    /*---------------定义变量-----------------*/ResultSet rs = null;
    int pageSize = 1; //当前页数
    int pageNumber = 10; //每页显示记录数
    int maxRow = 0; //总记录数
    int maxPageSize = 0; //总页数
    int position = 0; //当前指针
    boolean hasNote = false; //标记是否存在记录
    /*---------------分页显示---------------*/
    Crzbl CrzblBean = new Crzbl();
    try{
    rs = CrzblBean.show(); //获取出入证信息表crzxx所有记录
    //获取总记录数
    if(rs.last()){
    maxRow = rs.getRow();
    hasNote = true;
    }
    //计算总页数
    maxPageSize = maxRow/pageNumber;
    if(maxRow%pageNumber!=0){
    maxPageSize = maxPageSize + 1;
    }
    //获取当前页数
    if(request.getParameter("pageSize")!=null && !request.getParameter("pageSize").equals("1")){
    pageSize = Integer.parseInt(request.getParameter("pageSize"));
    }
    if(pageSize < 1){
    pageSize = 1;
    }
    if(pageSize > maxPageSize){
    pageSize = maxPageSize;
    }
    //定位当前的指针
    position = (pageSize - 1) * pageNumber + 1;
        rs.absolute(position);
    //显示记录
    if(pageNumber > maxRow){
    pageNumber = maxRow;
    }
    for(int i = 0; i < pageNumber; i++){
    String crzh = rs.getString("crzh");
    String bzr = rs.getString("bzr");
    String sxrq = rs.getString("sxrq").substring(0,10);
    String dqrq = rs.getString("dqrq").substring(0,10); out.print("<form name=form method=post action=crzbl_del_proc.jsp?crzh=" + crzh + "><tr bgcolor=F7F7F7 height=30><td><div align=center>" + crzh + "</a></td>");
    out.print("<td><div align=center><a href = crzbl_detail.jsp?crzh=" + crzh + ">" + bzr + "</td>");
    out.print("<td><div align=center>" + sxrq + "</td>");
    out.print("<td><div align=center>" + dqrq + "</td>");
    out.print("<td valign=center><div align=center><input type=submit name=submit value=' 删 除 ' onClick='return doDelete();' class=better></div></td></tr></form>"); if(!rs.next()){
    break;
    }
    }
    out.print("</table>");  //-----------------以下用来显示页面数目的
    out.print("<br><div align = center>");
    out.print("<a href = crzbl.jsp?pageSize=1>第一页&nbsp;&nbsp;</a>");
    out.print("<a href = crzbl.jsp?pageSize=" + (pageSize-1) + ">上一页&nbsp;&nbsp;</a>");
    out.print("<a href = crzbl.jsp?pageSize=" + (pageSize+1) + ">下一页&nbsp;&nbsp;</a>");
    out.print("<a href = crzbl.jsp?pageSize=" + maxPageSize + ">最后页&nbsp;&nbsp;</a>");
    out.print("共计记录数: " + maxRow + " &nbsp;&nbsp;&nbsp;当前页: "+ pageSize + " &nbsp;&nbsp;&nbsp;总页数:" + maxPageSize + "</div>");
    //-------------------分页结束}catch(SQLException e)
    {
    mdwy.exception.MdwyException ex=new mdwy.exception.MdwyException("错误!");
    ex.setTstp("yc");
    throw ex;
    }
    finally
    {
    try{
    if(rs != null){
    rs.close();
    }
    CrzblBean.closeDB();
    }
    catch(Exception e)
    {
    mdwy.exception.MdwyException ex=new mdwy.exception.MdwyException("错误!");
    ex.setTstp("yc");
    throw ex;
    }
    }
    %>
        </td>
      </tr>
    </table>
      

  5.   

    jsp里的源代码
    <html>
    <body>
    <%@ page  contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %>
    <jsp:useBean id="data" class="sql.operation1" scope="page"/> 
    <%
    int pages=0;//当前页码
    int pagesize=10;
    ResultSet res;
    String pages_str=request.getParameter("pages");
    if(pages_str==null){
      pages_str="0";
    }
    pages = new Integer(pages_str).intValue();
    //使用新建一个变量创建数据。
    String bottom,top,sql="";
    bottom=String.valueOf(pages*pagesize+1);
    top=String.valueOf(pages*pagesize+pagesize);
    sql="select * from faq where id>="+bottom+" and id<="+top;
    res = data.executeQuery(sql);
    String question,answer;
    while(res.next()){
     question=res.getString(2);
     answer=res.getString(3);
     out.print("<p>"+question+"<li>"+answer+"<br>");
    }
    out.print("<p><hr>");
    String space="&nbsp;&nbsp;";
    int total_page;//计算页数与除以10后留下的页数。
    sql="select ceiling(count(*)/"+pagesize+") as count1 from faq"; //使用count(*)取得记录集
    res=data.executeQuery(sql);
    total_page=res.getInt(1);
    for(int intloop=0;intloop<total_page;intloop++){
      String N_url="<a href=page_show2.jsp?pages="+intloop+">",url1="</a>";
    out.print(N_url+(intloop+1)+url1+space);  
    }
    res.close();
    %> 
    </body>
    </html>
    javabean里的源代码
    package sql;import java.sql.*;public class operation1 { String sDBDriver = "org.gjt.mm.mysql.Driver";
    //String sDBDriver = "com.mysql.jdbc.Driver";
        String sConnStr = "jdbc:mysql://localhost:3306/test?user=root;password=pallas";
        Connection conn = null;
        ResultSet rs = null;
        Statement stmt;
    int rec_count=0;  public operation1() {
    try {
           Class.forName(sDBDriver);
           conn = DriverManager.getConnection(sConnStr);
           stmt = conn.createStatement();
    }
    catch(java.lang.ClassNotFoundException e)  {
       System.err.println("create(): " + e.getMessage());
    }
        catch(SQLException e){
        }
      }
      
      public int getcount(ResultSet rs_temp){
      try{
    while(rs_temp.next()){
    rec_count=rec_count+1;
    }
      }catch(SQLException e){
      
      }
      return rec_count;  
      }
        
      public boolean executeUpdate(String sql){
        try{
         stmt.executeUpdate(sql);
     return true;
    }catch(SQLException e){
       System.err.println("aq.executeUpdate: " + e.getMessage());
       return false;
    }
      }
      
      public Statement getStatement(){
        return stmt;
      }
      
      public ResultSet executeQuery(String sql) {
    rs = null;
    try {
      rs = stmt.executeQuery(sql);
    }
    catch(SQLException ex) {
      System.err.println("aq.executeQuery: " + ex.getMessage());
    }
    return rs;
     }
    }
      

  6.   

    完全JSP分页代码
    http://www.java-cn.com/technology/technology_detail.jsp?id=356
      

  7.   

    package hzdq.fdjc.Common;import java.sql.*;
    import java.util.*;/**
     * Title:分页
     * Description:
     * Copyright:    Copyright (c) 2004
     * Company:
     * author:颜喜班
     * @version 1.0
     */
    public class SplitPager
    {
      /*
       * _sql_str:传入的sql语句
       * _total_records: 总记录数目
       * _pageSize: 每页显示的记录数目
       * _page: 所分的逻辑页数
       */
    private Connection con=null;
    private Statement stmt=null;
    private ResultSet rs=null;
    private ResultSetMetaData rsmd=null;
    private String _sql_str;
    private int _total_records;
    private int _pages;
    private int _pagesize;
    public void setConnection(Connection con)
    {
    this.con=con;
    if (this.con == null)
                System.out.println("Failure to get a connection!");
    else
    System.out.println("Success to get a connection!");
    }
    public void initialize(String sqlStr,int pageSize)
    {
    this._sql_str=sqlStr;
    this._pagesize=pageSize;
    try{  
    stmt=this.con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);  
                    rs=stmt.executeQuery(this._sql_str); 
    rsmd=rs.getMetaData();
    if (rs!=null)
    {
    rs.last();
    this._total_records = rs.getRow();
    rs.first();
    this._pages = (this._total_records - 1) / this._pagesize + 1;

    }  
               catch(SQLException  e){System.out.println(e.toString()); } 
    }
    public  Vector  getPage(int ipage){ 
              Vector  vData=new  Vector();
              int  n=ipage;  
              int  m=0;  
              m=(n-1)*this._pagesize+1;  
      try{
    if (rs!=null)
    {
    rs.absolute(m);
    for(int i=0;i<this._pagesize;i++){
    String[] sData=new String[rsmd.getColumnCount()];
    for(int j=0;j<rsmd.getColumnCount();j++)
    {
    sData[j]=rs.getString(j+1);
    }
    if (sData==null)
    {
    break;
    }
    vData.addElement(sData);
    rs.next();

    }            
                    rs.close();  
        stmt.close(); 
                    }  
               catch(SQLException  e){System.out.println(e.toString()); } 
               return  vData;  
    }  
    public int getPages()
        {
            return this._pages;
        }
    public int getTotalRecords()
        {
            return this._total_records;
        }}
      

  8.   

    好东西当然要分享啊!看我的:经典分页程序
    jsp+javaBeanhttp://www.52free.com/bbs/index.php?act=ST&f=8&t=148&st=0#entry298如果数据库不同只需修改javaBean中的驱动即可,页面显示数可以自己控制。