java.sql.SQLRecoverableException: Закрытое соединение: next

271
13 августа 2021, 07:40

В коде в отдельном классе произвожу выборки и возвращаю ResultSet

public static ResultSet exe()  throws Exception   {
        ResultSet rout;
        Class.forName("oracle.jdbc.driver.OracleDriver");
...

        ResultSet rs = stmt.executeQuery(sql); // 1
        rout = rs; // 2
        stmt.close();
        conn1.close();
        return rout;
}

А вызываю и обрабатываю так

public static void main(String args[])  throws Exception  {
        ResultSet r;
        r = exe();
        while (r.next()){
            out(r.getString(1)); // Класс для вывода, работает
        }
    }

Я переписываю в новый ResultSet (2) и возвращаю. Но у меня выводится ошибка

Exception in thread "main" java.sql.SQLRecoverableException: Закрытое соединение: next

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

P.S.: Причем, если не закрывать соединение, все работает нормально. Но его же нужно закрывать обязательно?

READ ALSO
Перебор вариантов ( Рекурсия, “Рюкзак” )

Перебор вариантов ( Рекурсия, “Рюкзак” )

Я извиняюсь за свои макароныДан вес 26 инструментов ( float[] Kaal ), нужно проверить дает ли какой то набор инструментов ( Не больше 13 ) вес равный...

450
Как уменьшить/увеличить размер массива

Как уменьшить/увеличить размер массива

Мне в классе нужно создать массив (именно массив, не список) из X элементов, как затем размер этого массива увеличить и уменьшить на 1 элемент...

189
Многопоточное программирование (класс Thread)

Многопоточное программирование (класс Thread)

Решил посмотреть как работает метод start()Не нашел ни одного упоминания о методе run()

113
Заливка области

Заливка области

У меня есть фигура нарисованная через GeneralPath path;

243