java.sql.SQLException: Operation not allowed after ResultSet closed at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) at com.mysql.cj.jdbc.result.ResultSetImpl.checkClosed(ResultSetImpl.java:485) at com.mysql.cj.jdbc.result.ResultSetImpl.checkRowPos(ResultSetImpl.java:529) at com.mysql.cj.jdbc.result.ResultSetImpl.getObject(ResultSetImpl.java:1322) at com.mysql.cj.jdbc.result.ResultSetImpl.getInt(ResultSetImpl.java:830) at com.dao.impl.BillDaoImpl.getBillCount(BillDaoImpl.java:23) at com.service.impl.BillServiceImpl.getBillPage(BillServiceImpl.java:21) at com.servlet.BillServlet.getBillPage(BillServlet.java:204) at com.servlet.BillServlet.doPost(BillServlet.java:43) at com.servlet.BillServlet.doGet(BillServlet.java:28) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:537) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:631
时间: 2023-10-31 21:47:12 浏览: 284
根据异常信息可以看出,问题出现在`BillDaoImpl`的`getBillCount`方法中的`ResultSet`已经关闭后仍然被使用了。这通常是因为在使用`ResultSet`之后没有正确关闭它导致的。
请确保在使用完`ResultSet`后,调用`close`方法关闭它。另外,还要确保没有重用或重新执行已经关闭的`ResultSet`。
以下是一些可能导致该异常的常见原因:
- 在使用完`ResultSet`后没有调用`close`方法关闭它。
- 在使用完`ResultSet`后,尝试重新执行查询或使用已经关闭的`ResultSet`。
- 在同一个连接上并行执行多个查询,并且其中一个查询关闭了`ResultSet`,但另一个查询仍然在使用它。
请检查相关的代码,并确保正确关闭和处理`ResultSet`对象。
阅读全文