报SQL exception异常

疯雪 2015-09-23 03:20:57

<%
//从pageBean获取分页结果
ResultSet rs = pageBean.getResultSet();
if(rs!=null)
{
System.out.println(rs!=null);
//在这儿会出错,好奇怪
for(int i = 0;i<10 && rs.next();i++)
{
%>


判断结果中RS不是null对象,但是从rs.next()开始就开始报异常Operation not allowed after ResultSet closed,该怎么解决啊?

完整异常


Stacktrace:] with root cause
java.sql.SQLException: Operation not allowed after ResultSet closed
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.checkClosed(ResultSetImpl.java:788)
at com.mysql.jdbc.ResultSetImpl.next(ResultSetImpl.java:7060)
at org.apache.jsp.index2_jsp._jspService(index2_jsp.java:161)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2463)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2452)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:744)

...全文
273 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_20062767 2015-10-07
  • 打赏
  • 举报
回复
rs可能已经指向你取得的结果集的最后,你可以检查一下你的后台代码,看看是不是已经关闭了这个rs,你可以调式一下,跟踪一下,看看变量的变化过程。
豆芽炒粉丝 2015-10-07
  • 打赏
  • 举报
回复
Operation not allowed after ResultSet closed 结果集关闭后不允许操作,你看看在哪里关闭的,再查看一下关闭后的操作
licip 2015-10-07
  • 打赏
  • 举报
回复
要关闭的资源都放到最后 你的rs等把数据取完后,再关闭。
从小就很呆 2015-09-30
  • 打赏
  • 举报
回复
你这遍历是在jsp上进行的。是后台传过来的 还是在jsp里 写的查询,看看你的数据源在之前是否已经关闭了
风若飞 2015-09-23
  • 打赏
  • 举报
回复
我的建议,1.你获取数据库的list的代码写在java后台不要写在jsp上。在前台通过requst来获取对象 2.在循环之后关闭相关数据库连接。 你贴的代码不全,没有显示pageBean这个是什么是数据库连接么?现在只能确认,你获取对象时连接已经关闭了。
tony4geek 2015-09-23
  • 打赏
  • 举报
回复
找找你数据源关闭的地方。
jpw_980319116 2015-09-23
  • 打赏
  • 举报
回复
检查关闭结果集close方法
这个逗b 2015-09-23
  • 打赏
  • 举报
回复
rs.close 在哪里

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧