Operation not allowed after ResultSet closed

问题描述

<%Stringusername=(String)session.getAttribute("username");Class.forName("com.mysql.jdbc.Driver").newInstance();//DriverManager.registerDriver(newcom.mysql.jdbc.Driver());StringdbUrl="jdbc:mysql://localhost:3306/bookdb?user=root&password=1234&useUnicode=true&characterEncoding=GB2312";Connectioncon=java.sql.DriverManager.getConnection(dbUrl);Statementstmt=con.createStatement();Stringsql="SELECT*fromshopping_cartWHEREbuyer_name='"+username+"'";ResultSetrst=stmt.executeQuery(sql);while(rst.next()){Stringbookname=rst.getString("bookname");Stringbuyer_name=username;Stringseller_name=rst.getString("username");Stringprice=rst.getString("price");StringsqlInsert="INSERTINTOdeal(book_name,buyer_name,seller_name,price)VALUES('"+bookname+"','"+buyer_name+"','"+seller_name+"','"+price+"')";System.out.println(sqlInsert);stmt.executeUpdate(sqlInsert);}out.println("<tr><td>购买成功!</tr></td>");stmt.close();con.close();%>运行的时候总是要报错,网上说要用Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);我试了还是不行,请大神帮我看下

解决方案

解决方案二:
你查下api,看看statement的构造函数的那些参数都是干什么用的,然后就可以根据需求初始化statement了

时间: 2024-09-17 13:54:44

Operation not allowed after ResultSet closed的相关文章

SQLExecption:Operation not allowed after ResultSet closed解决办法

原网址:http://blog.csdn.net/sku0923/article/details/1722370 一个stmt多个rs进行操作引起的ResultSet已经关闭错误 一个stmt多个rs进行操作. 那么从stmt得到的rs1,必须马上操作此rs1后,才能去得到另外的rs2,再对rs2操作. 不能互相交替使用,会引起rs已经关闭错误. 错误的代码如下:  stmt=conn.createStatement();   rs=stmt.executeQuery("select * fro

一个stmt多个rs进行操作引起的ResultSet已经关闭错误

错误 一个stmt多个rs进行操作.那么从stmt得到的rs1,必须马上操作此rs1后,才能去得到另外的rs2,再对rs2操作.不能互相交替使用,会引起rs已经关闭错误.错误的代码如下: stmt=conn.createStatement(); rs=stmt.executeQuery("select * from t1"); rst=stmt.executeQuery("select * from t2"); rs.last();//由于执行了rst=stmt.e

问个有关JDBC,ResultSet对像多次使用后再关闭的问题,困扰许久,望各位指点明津,谢谢

问题描述 //代码...ResultSet rs = this.conn.prepareStatement("select * from test1").executeQuery(); //注sql语句不同while(rs.next()){ ...}rs = this.conn.prepareStatement("select * from test2").executeQuery(); //注sql语句不同while(rs.next()){ ...}rs = th

JDBC-常见异常

Operation not allowed after ResultSet closed Statement stmt = connection.createStatement(); stmt=conn.createStatement(); ResultSet rs=stmt.executeQuery("select * from t1"); //注意同一个Statement的新一次查询会关闭上一次的查询结果resultSet. ResultSet rs2=stmt.executeQu

连接MySql超时断开报错问题

  使用Mysql数据库时,最让人头疼的一个问题就是不定时会出现连接报错异常Exception,类似的Exception如下(Hibernate为例): ? 1 2 3 4 5 6 7 8 9 10 org.hibernate.util.JDBCExceptionReporter - SQL Error:0, SQLState: 08S01 org.hibernate.util.JDBCExceptionReporter - The last packet successfully receiv

Java Secure Socket Extension (JSSE) Reference Guide

Skip to Content Oracle Technology Network Software Downloads Documentation Search Java Secure Socket Extension (JSSE) Reference Guide This guide covers the following topics: Skip Navigation Links Introduction Features and Benefits JSSE Standard API S

MySQL JDBC 5.1.25的一个坑(应该算是BUG)

这是公司的一个重要项目中的真实案例(目前还未证实其它版本是否存在,不过刚看了最新版5.1 .26版本还是没有修复这个操作方式,不过用的小伙伴们要注意了哦): [该BUG,官方目前最新版本已经修复,详细请参考文章最后,大家注意使用的版本和原因即可] 什么样的情况呢,当在代码中使用connection.close()方法的时候,神奇般的StackOverflow了!没错,这就是JDBC自己导致的死递归,堆栈输出的内容如下所示: 这个堆栈信息可以这样反推程序:     ConnectionImpl.r

Oracle Database 12C 学习之多租户(连载四)

使用克隆现存PDB的方式创建新的PDB:这里有两种情况,一种为使用本地PDB,另外一种为使用远程PDB.二者并无太大差异.只是第二种需要使用DBLINK而已. 克隆本地方式: SYS@ora12g> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORA12C_PDB1

内存泄露是什么引起的?

问题描述 严重: Servlet.service() for servlet action threw exceptioncom.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: No operations allowed after connection closed.at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:888)at com.mysql.jd