如下是我的一段代码,完成删除记录的功能。大部分记录都能成功删除,但是如果删除了数据库中最后一条记录后就报错:用尽的 Resultset。希望高手指点指点java.lang.String paramPage;
java.sql.Statement stmt;
java.sql.ResultSet rst;
int currentPage=1;//当前页
int pagecount=1;//总页数
int totalrow=0;//总行数

StringBuffer pageInfo=new StringBuffer();
//设置一页显示的记录数 
   int pagesize=5;//数据库连接
   Connection conn=null;
   stmt=null;
   conn=connection.getConnection();
   stmt=conn.createStatemen(ResultSet.TYPE_SCROLL_SENSITIVE ,ResultSet.CONCUR_READ_ONLY);
   rst=stmt.executeQuery("select * from plan");
    
//取得待显示页码 
   paramPage = request.getParameter("page"); 
   if (paramPage==null){currentPage=1;}
   else {currentPage = java.lang.Integer.parseInt(paramPage);}
    
   if(!rst.equals(null))
   {
        //获得记录数量
        
        rst.last();
        totalrow=rst.getRow();
       
    
        //计算出总页数
        pagecount=(int)Math.ceil((float)totalrow/(float)pagesize);
        int i=1;
        rst.absolute((currentPage-1)*pagesize+1);//把指针放到要显示的第一个数据 

        while(i<=pagesize && !rst.isAfterLast()){
      out.println("<tr bgcolor=#ffffff>\n");
      out.println("<td>"+rst.getString("year")+"</td>");
      out.println("<td>"+rst.getString("term")+"</td>");
      out.println("<td>"+rst.getString("majorname")+"</td>");
      out.println("<td>"+rst.getString("level")+"</td>");
      out.println("<td>"+rst.getString("state")+"</td>");
      out.println("<td>"+rst.getString("plannum")+"</td>");
      out.println("<td>"+rst.getString("course1")+"</td>");
      out.println("<td>"+rst.getString("course2")+"</td>");
      out.println("<td>"+rst.getString("course3")+"</td>");
      out.println("<td>"+rst.getString("course4")+"</td>");
//发送删除请求到后台页面
      out.println("<td><a href='deleteplan_do.jsp?planid="+rst.getString("planid")+"'>删除</a>");
      out.println("</tr>");
      if (!rst.next()) break;
      i++;  
    }  
  }  
       try{
    rst.close();
    stmt.close();
    conn.close();
}catch(SQLException e){
       System.err.println(e);
}

解决方案 »

  1.   

    'deleteplan_do.jsp是如何删除的?
      

  2.   

    deleteplan_do.jsp中操作删除的代码:
    <% 
    plan.deletePlan((String)trans(request.getParameter("planid")));
    response.sendRedirect("deleteplan.jsp");
    %>plan.deletePlan()是我调用的javabean,代码如下:public void deletePlan(String planid)throws Exception{ Statement stmt=con.createStatement();
    stmt.execute("delete from plan where planid='"+planid+"'");
    con.close();
    }