如下是我的一段代码,完成删除记录的功能。大部分记录都能成功删除,但是如果删除了数据库中最后一条记录后就报错:用尽的 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);
}
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);
}
<%
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();
}