问题出现的原因:
Statement statement = dbConn.createStatement();
// 要执行的SQL语句
ResultSet rs = statement.executeQuery("select name,salary from workerinfo WHERE salary > 12000");
ResultSet rs1 = statement.executeQuery("select name,salary from workerinfo WHERE salary < 12000");
while(rs.next()&&rs1.next())
{
System.out.println( " 工号; " + rs1.getString("salary") +" 姓名:"+ rs1.getString("name"));
System.out.println( " 工号; " + rs.getString("salary") +" 姓名:"+ rs.getString("name"));
}
运行这段代码,会报错:Operation not allowed after ResultSet closed
解决办法:
Statement statement = dbConn.createStatement();
// 要执行的SQL语句
ResultSet rs = statement.executeQuery("select name,salary from workerinfo WHERE salary > 12000");
while(rs.next())
{
System.out.println( " 工号; " + rs.getString("salary") +" 姓名:"+ rs.getString("name"));
}
ResultSet rs1 = statement.executeQuery("select name,salary from workerinfo WHERE salary < 12000");
while(rs1.next())
{
System.out.println( " 工号; " + rs1.getString("salary") +" 姓名:"+ rs1.getString("name"));
}
结论:一个statment对应多个rs进行操作。从statment得到的rs,必须马上操作此rs后,才能去得到另外的rs1,再对rs1操作,不能互相交替使用,会引起rs已经关闭错误——Operation not allowed after ResultSet closed.