读数据库信息进行分页显示,好调用,最好有备注解释;菜单要求如下:共?条记录 首页 上一页 下一页 末页 页码:1/1页 指定:[ ?]页 每页显示[ ?]条  显示全部  谢谢!

解决方案 »

  1.   

    这个是我自己写的,比较粗糙,也和你的要求不太象,但是基本的技术点都有,你自己改一下吧,希望对你有启发。
    <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,javax.naming.*,javax.sql.*" errorPage="" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>查看数据库</title>
    </head><pre><body><table width="80%" align="center">
    <tr bgcolor="#3399FF">
    <td>querystring(查询字符串)</td>
    <td>querycount(查询次数)</td>
    </tr>
    <%
      Connection conn=null;
      Statement stmt=null;
      String sql;
      ResultSet rs=null;
      int i=0;//循环参数
      int pages=0;//页数
      int pageIndex=1;//当前页数
    try {
    Class.forName("com.mysql.jdbc.Driver").newInstance(); 
            conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/manage_db","btmysql","123mysql");
    stmt = conn.createStatement();
    sql="select * from loginfo order by querycount desc";
    rs=stmt.executeQuery(sql);
    if(request.getParameter("selPage")==null){
      while(rs.next()) {
    if(i>0 && i<=10){
             out.print("<tr>");
             out.print("<td>"+rs.getString(2)+"</td>");
             out.print("<td>"+rs.getString(5)+"</td>");
             out.print("</tr>");
    }//循环十次
      i++;
      if(i%10==0){
          pages++;
      }//获得页数
      }//endWhile
      }//判断是否有request
      else{
         pageIndex=Integer.valueOf(request.getParameter("selPage")).intValue();
     while(rs.next()) {
       if(i>(pageIndex-1)*10 && i<=pageIndex*10){
         out.print("<tr>");
             out.print("<td>"+rs.getString(2)+"</td>");
             out.print("<td>"+rs.getString(5)+"</td>");
             out.print("</tr>");
         }//endIf
         i++;
     if(i%10==0){
          pages++;
        }   
    }//endWhile
    }//endElse} catch (Exception e) {
    out.print(e.toString()+"<br>");
    }finally{
    if(rs!=null)
    rs.close();
    if(stmt!=null)
        stmt.close();
    if(conn!=null)
                conn.close();
    }
    %></table><form name="form1" action="webtest.jsp">
    <table align="right" width="40%">
    <tr>共<%=pages%>页&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当前第<%=pageIndex%>页</tr>
    <tr><td align="left"><select name="selPage" >
    <%for(int j=1;j<=pages;j++){
    %>
    <option><%=j%></option>
    <%}%>
    </select></td>
    <td align="left"><input type="submit" value="查看"/></td></tr>
    </table>
    </form>  </pre>
    </body>
    </html>
      

  2.   

    /*
     * pagectl.java
     *
     * Created on 2003年12月4日, 下午11:12
     */package beans;/**
     *
     * @author  yangxu
     */
    public class Dpage {
      /** Creates a new instance of pagectl */
      private int intPageSize;
      private int intShowPage;
      private int intRowCount;
      private int intPageCount;
      private int intPos;  public Dpage() {
          intPageSize = 20;
          intShowPage = 1;
          intRowCount = 0;
          intPageCount = 0;
          intPos = 1;
        }
      public int getIntPageSize() {
        return intPageSize;
      }
      public void setIntPageSize(int intPageSize) {
        this.intPageSize = intPageSize;
      }
      public int getIntShowPage() {
        return intShowPage;
      }
      public void setIntShowPage(int intShowPage) {
        this.intShowPage = intShowPage;
        if (intShowPage > intPageCount)
            this.intShowPage = intPageCount;
        if (intShowPage <= 0)
            this.intShowPage = 1;
        this.intPos = intPageSize * (intShowPage - 1) + 1;
      }
      public int getIntRowCount() {
        return intRowCount;
      }
      public void setIntRowCount(int intRowCount) {
        this.intRowCount = intRowCount;
        intPageCount = (intRowCount % intPageSize) == 0 ?
                                        (intRowCount/intPageSize):(intRowCount/intPageSize + 1);
      }
      public int getIntPageCount() {
        return intPageCount;
      }
      public int getIntPos() {
        return intPos;
      }
      public int getIntPrePage() {
        if (intShowPage > 1)
            return intShowPage - 1;
        else
            return 1;
      }
      public int getIntNextPage() {
        if (intShowPage < intPageCount)
            return intShowPage + 1;
        else
            return intPageCount;
      }
    }
    这个是我用的
      

  3.   

    intPageCount = (intRowCount+intPageSize-1)/intPageSize