报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)

...全文
175 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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这个是什么是数据库连接么?现在只能确认,你获取对象时连接已经关闭了。
回复
兔子托尼啊 2015-09-23
找找你数据源关闭的地方。
回复
jpw_980319116 2015-09-23
检查关闭结果集close方法
回复
这个逗b 2015-09-23
rs.close 在哪里
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-09-23 03:20
社区公告
暂无公告