Моя цель - централизовать все взаимодействия с моей базой MySql в одном классе (например, SqlUtils). В основном я хочу поддерживать доступ к ResultSet
или аналогичному классу даже после закрытия соединения. Следующий способ не работает, поскольку после того, как мой бизнес-метод получает ResultSet, возникает исключение, потому что базовое соединение уже закрыто. Я хочу подчеркнуть, что открытие и закрытие соединения с базой данных должно происходить внутри getResultSet()
.Сохраните результаты ResultSet в списке
public ResultSet getResultSet(String sql) {
try (Connection conn = getConnection();){
return conn.createStatement().executeQuery(sql);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
Что я теперь думаю, чтобы сделать что-то вроде этого:
public List<ResultHolder> getResultSet(String sql) {
List<ResultHolder> list = new LinkedList<>();
try (Connection conn = getConnection();
ResultSet res = conn.createStatement().executeQuery(sql);) {
while(res.next()) {
list.add(res.convertToResultHolder());
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
Есть ли класс, который делает то, что мне нужно, что я выразил в ResultHolder
.
Wow! Именно то, что мне нужно. Благодаря! – mossaab
Добро пожаловать, рад, что это сработало для вас. – anubhava