结果集未打开。不允许操作“getString”。验证自动提交是不是关闭。?
Posted
技术标签:
【中文标题】结果集未打开。不允许操作“getString”。验证自动提交是不是关闭。?【英文标题】:ResultSet not open. Operation 'getString' not permitted. Verify that autocommit is off.?结果集未打开。不允许操作“getString”。验证自动提交是否关闭。? 【发布时间】:2016-04-26 12:01:40 【问题描述】:我正在使用 apache derby 并得到上述错误是我的代码,实际上我只是没有得到父母下的所有孩子,它只给我一个级别的孩子,所以请告诉我如何让树成为父母和孩子,但这只给出了具有上述错误的一个级别的孩子
连接
public static Connection getConnection()
Connection connection = null;
try
Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();//
//Get a connection
connection = DriverManager.getConnection(dbURL);
connection.setAutoCommit(false);
connection.getAutoCommit();
catch (Exception except)
System.out.println(except);
return connection;
最后一次读取 rs1 时第二个循环出错
Statement stmt;
stmt = MainUI.getConnection().createStatement();
【问题讨论】:
接受的答案是因为您说的部分为 1 条语句打开一个连接我已尝试访问与其他语句的相同连接 【参考方案1】:我相信嵌套结果集是你的问题。
要打开两个不同的结果集,您必须有两个独立的Statement
实例,因此每个实例都可以有自己的ResultSet
。否则,在同一个 Statement
实例上运行第二个查询将关闭第一个 ResultSet
。
有关更多信息,请参阅此答案:https://***.com/a/8579669/193453
另外,请查看 java.sql.Statement
类的 Javadocs:
默认情况下,每个 Statement 对象只能同时打开一个 ResultSet 对象。因此,如果读取一个 ResultSet 对象与另一个对象的阅读交错,每个对象都必须是 由不同的 Statement 对象生成。中的所有执行方法 语句接口隐式关闭一个语句的当前 ResultSet 如果存在打开的对象。
【讨论】:
接受的答案是因为您说的部分为 1 条语句打开一个连接我已尝试访问与其他语句的相同连接以上是关于结果集未打开。不允许操作“getString”。验证自动提交是不是关闭。?的主要内容,如果未能解决你的问题,请参考以下文章