原理是这样的,比如page是当前的页数,每页为count条数据,那么你在查询的时候就根据page来进行查询。查询的语句表达为:结果不在page×count里,在page×(count+1)里。这样每次查处来的数据就只有你当前页要查出来的count条数据,然后用循环输出,以rs.Eof作为结束条件。以上思路仅供参考。

解决方案 »

  1.   

    修正一个错误:结果不在(page-1)×count里,在page×count里。
      

  2.   

    sqlserver用top关键字进行查询,oracle用rownum进行查询。
      

  3.   

    給你個例子看看,別人寫的:
    <%@ page language="java" contentType="text/html;charset=shift_jis"%>
    <%
    //?量声明 
    java.sql.Connection sqlCon; //数据??接?象 
    java.sql.Statement sqlStmt; //SQL?句?象 
    java.sql.ResultSet sqlRst; //?果集?象 
    java.lang.String strCon; //数据??接字符串 
    java.lang.String strSQL; //SQL?句  int intPageSize; //一??示的??数 
    int intRowCount; //???数 
    int intPageCount; //??数 
    int intPage; //待?示??  java.lang.String strPage;  int i,j,k; //?置一??示的??数 
    intPageSize = 5; //取得待?示??
    strPage = request.getParameter("page"); if(strPage==null){ 
    //表明在QueryString中没有page?一个参数,此??示第一?数据 
    intPage = 1;
    } else{
    //将字符串??成整型
    intPage = java.lang.Integer.parseInt(strPage);
    if(intPage<1)
    intPage = 1;
    }
    //装?JDBC-ODBC??程序
    java.lang.Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    //?置数据??接字符串
    strCon = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=BJCNC";
    //?接数据?
    sqlCon = java.sql.DriverManager.getConnection(strCon,"sa","sa");
    //?建SQL?句?象
    sqlStmt = sqlCon.createStatement();
    //?取???数 
    strSQL = "select count(*) from BJHR0010";
    sqlRst = sqlStmt.executeQuery(strSQL);
    //?行SQL?句并取得?果集
    sqlRst.next(); //??集?打?的?候,指?位于第一条??之前 
    intRowCount = sqlRst.getInt(1);
    sqlRst.close(); //???果集 //?算??数
    intPageCount = (intRowCount+intPageSize-1) / intPageSize;
    //?整待?示的?? if(intPage>intPageCount) intPage = intPageCount;
    //?置?取数据SQL?句
    strSQL = "select * from BJHR0010";
    //?行SQL?句并取得?果集
    sqlRst = sqlStmt.executeQuery(strSQL);
    //将??指?定位到待?示?的第一条??上
    i = (intPage-1) * intPageSize;
    for(j=0;j<i;j++) sqlRst.next(); %><html>
    <head>
    <title>JSP数据?操作例程 - 数据分頁?示 - JDBC-ODBC</title>
    </head>
    <body>
    <p align=center>jdbc-odbc留言版</p> 
    <table border="1" cellspacing="0" cellpadding="0" width=600 align=center> 
    <%//?示数据 
    i = 0;
    while(i<intPageSize && sqlRst.next()){ %> 
    <tr>
    <td>Name  :<%=sqlRst.getString(1)%></td> 
    <td>E-Mail:<%=sqlRst.getString(2)%></td> 
    </tr>
    <tr>
    <td colspan=2><%=sqlRst.getString(3)%></td> 
    </tr>
    <% i++; } %>
    <tr>
    <td colspan=2 align=center>
    第<%=intPage%>頁 共<%=intPageCount%>頁
    <%if(intPage<intPageCount){%>
    <a href="test.jsp?page=<%=intPage+1%>">下一頁</a><%
    }
    if(intPage>1){%>
    <a href="test.jsp?page=<%=intPage-1%>">上一頁</a><%
    }%>
    </td>
    </tr>
    </table>
    </body>
    </html>
    <%
    //???果集
    sqlRst.close();
    //??SQL?句?象
    sqlStmt.close();
    //??数据?
    sqlCon.close();
    %>