<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%><%
String dbdriver="sun.jdbc.odbc.JdbcOdbcDriver";
String dburl="jdbc:odbc:student" ;
Connection con= null ;
PreparedStatement ps=null;
ResultSet rs=null;
String sql=null;
/////////////////////////////////////////////////////////////////////
try
{
Class.forName(dbdriver);
}catch(Exception e)
{
System.out.print("数据库加载失败..");
}
////////////////////////////////////////////////////////////////////
    try{
con=DriverManager.getConnection(dburl);

}catch(Exception e)
{
System.out.print("数据库连接失败.");


}
/////////////////////////////////////////////////////////////////////
try
{
sql="SELECT id,name,sex,number FROM sinkinto01";
ps=con.prepareStatement(sql);
rs=ps.executeQuery();  
}catch(Exception e)
{
System.out.print("数据库操作失败.");

}%><%
    int countRecord=0; //记录总条数
    int countPageRecord=5;//每页记录数..
    int countPage=1;//当前页数
    int allPage=0;//总页数
    int dipage=0;
    
    rs.last();
    countRecord=rs.getRow(); //得到种共多少行...
    //////////////////////////////////////
   allPage=(countRecord%countPageRecord==0)?(countRecord/countPageRecord):((countRecord/countPageRecord)+1);
   //得到总页数..    countPage=Integer.parseInt(request.getParameter("dipage"));
     int x;
     for(x=0;x<(countPage-1)*countPageRecord;x++)
     {
     rs.next();
     }
   
     
      %>
   <%
  
   int j=0;
  for(j=0;j<countPageRecord;j++)
  if(rs.next())
     {
      String id = rs.getString("id");
      String name = rs.getString("name");
      String classname = rs.getString("sex");
      String sex = rs.getString("number"); 
      %>
 
      <h2><%out.print("号码:"+id);%></h2><br>
      <h2><%out.print("姓名:"+name);%></h2><br>
      <h2><%out.print("性别:"+classname);%></h2><br>
      <h2><%out.print("编号:"+sex);%></h2><br>
      <%out.println(""); %>
      <%out.println(""); %>
      <%out.println(""); %>
      
     <%}
     
     
      %> 
     <center >
     <a href="MyJspp.jsp"?dipage=1>首页</a>
     <a href="MyJspp.jsp"?(dipage+1)>下一页</a>
     <a href="MyJspp.jsp"?(dipage-1)>上一页</a>
     
     </center>    <%  rs.close();
        ps.close();
        con.close();
     %>
====================================================================================================
错误信息...
=================================================================== type Exception reportmessagedescription The server encountered an internal error () that prevented it from fulfilling this request.exceptionorg.apache.jasper.JasperException: javax.servlet.ServletException: java.sql.SQLException: Result set type is TYPE_FORWARD_ONLY
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)root causejavax.servlet.ServletException: java.sql.SQLException: Result set type is TYPE_FORWARD_ONLY
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
org.apache.jsp.MyJspp_jsp._jspService(MyJspp_jsp.java:202)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)root causejava.sql.SQLException: Result set type is TYPE_FORWARD_ONLY
sun.jdbc.odbc.JdbcOdbcResultSet.last(JdbcOdbcResultSet.java:2291)
org.apache.jsp.MyJspp_jsp._jspService(MyJspp_jsp.java:104)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.
    
======================================================================
请高手指点.为什么会出现这..??..
....谢谢了。.
     
  
    
    
     

解决方案 »

  1.   

     String id = rs.getString("id"); 
          String name = rs.getString("name"); 
          String classname = rs.getString("sex"); 
          String sex = rs.getString("number");  
    你數據庫里面的字段類型都是string?
      

  2.   

    java.sql.SQLException: Result set type is TYPE_FORWARD_ONLY 
    ×(#……¥)!@&#)¥!
      

  3.   

    org.apache.jasper.JasperException: javax.servlet.ServletException: java.sql.SQLException: Result set type is TYPE_FORWARD_ONLY 
    你创建的ResultSet对象是不可以上下移动的
    rs.last(); 
    楼主你把rs移动到最后貌似就直接rs.next()了。。
    一般用Statement来创建一个可移动的游标rs
    创建Statement对象时要在构造函数中传两个参数进去,lz自己去查下API
      

  4.   

    个人推荐孙鑫的java web应用开发详解,
    上面有完整的JSP创建可移动的rs来分页的例子
      

  5.   

    最近也被分页困扰,建议楼主把ResultSet的属性改为ResultSet.TYPE_SCOLL_SENSITIVE:指定ResultSet对象是可滚动的,而且对数据库修改敏感
      

  6.   

               真的没人回答吗/HELP
      

  7.   

    你把rs.last();计算完了数量以后..你要把他重新移到开始啊....