2016-04-26 2 views
0

Я использую apache derby, и получение вышеуказанной ошибки здесь - это мой код, на самом деле я просто не получаю всех детей под родителями, это только дает мне один уровень детей, поэтому любезно скажите мне, как сделать дерево родительским и ребенок, но это дает лишь один уровень ребенка с выше ошибкамиResultSet не открывается. Операция 'getString' не разрешена. Убедитесь, что автокоммит выключен.?

получая соединение

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

ответ принят, потому что часть, которую вы сказали, открыта для 1-го заявления, я попытался выполнить одно и то же соединение с другим заявлением –

ответ

2

гнездящегося результирующие наборы ваша проблема, я б elieve.

Чтобы иметь два разных набора результатов, вы должны иметь два отдельных экземпляра Statement, поэтому каждый может иметь свой собственный ResultSet. В противном случае запуск второго запроса на том же экземпляре Statement закроет первые ResultSet.

Смотрите этот ответ для получения дополнительной информации: https://stackoverflow.com/a/8579669/193453

Кроме того, посмотрите на Javadocs для java.sql.Statement класса:

По умолчанию, только один объект ResultSet в себе объект может быть открыт на в то же время. Поэтому, если чтение одного объекта ResultSet чередуется с чтением другого, каждый должен быть , сгенерированный различными объектами Statement. Все методы выполнения в интерфейсе Statement Statement неявно закрывают текущий объект ResultSet объекта, если существует открытый.

+0

ответ принят, потому что часть, которую вы сказали, одно соединение открыто для 1-го заявления, я попытался та же связь с другим заявлением –