我正在使用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();
答案 0 :(得分:2)
我相信嵌套结果集是你的问题。
要打开两个不同的结果集,您必须有两个单独的Statement
个实例,因此每个实例都可以有自己的ResultSet
。否则,在同一个Statement
实例上运行第二个查询将关闭第一个ResultSet
。
有关详细信息,请参阅此答案:https://stackoverflow.com/a/8579669/193453
另外,请查看java.sql.Statement
类的Javadoc:
默认情况下,每个Statement对象只能同时打开一个ResultSet对象。因此,如果读取一个ResultSet 对象与另一个对象的读取是交错的,每个都必须已经存在 由不同的Statement对象生成。所有的执行方法都在 Statement接口隐式关闭一个statment的当前ResultSet 对象,如果存在开放的对象。