Есть метод, где выполняется запрос:
public static ResultSet selectTemplates() throws SQLException {
String select = "select * from templates";
Connection connection = DBConnector.getDBConnection();
PreparedStatement statement = connection.prepareStatement(selectTemplates);
ResultSet resultSet = statement.executeQuery();
return resultSet;
}
Есть другой метод, где происходит обращение к resultSet и попытка забить значения в Map:
public static void main(String[] args) throws SQLException {
...
ResultSet resultSet = database.SQL.selectTemplates();
while (resultSet.next()) {
map.put(resultSets.getString("id"), false);
}
...
}
В таком виде resultSet доступен и отдаёт данные. Но если я меняю первый метод, добавляя try:
public static ResultSet selectTemplates() throws SQLException {
String select = "select * from templates";
try (Connection connection = DBConnector.getDBConnection();
PreparedStatement statement = connection.prepareStatement(selectTemplates)) {
ResultSet resultSet = statement.executeQuery();
return resultSet;
}
}
Я получаю ошибку: Exception in thread "main" java.sql.SQLException: Закрытый набор результатов: next
Объясните, почему так происходит?
Выдержка из JavaDoc к ResultSet классу
A ResultSet object is automatically closed when the Statement object that generated it is closed, re-executed, or used to retrieve the next result from a sequence of multiple results.
Ваш try с ресурсом закрывает Statement
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Через конструктор создал карту и сгенерировался следующий код:
Всем привет Недавно друзья заказывали билет на фестиваль на этом сайте https://bmfestcom/ (не реклама) и показали мне
Имеется блок с вопросом и ответамиПри нажатии на "Добавить вопрос", а затем в новом вопросе "Добавить ответ" - добавляет новый ответ только...