Прежде всего: Да, вы должны закрыть соединение, когда закончите, явно вызвав метод close()
. Закрытие соединения высвободит ресурсы базы данных.
ОБНОВЛЕНИЕ: И вы также должны закрыть PreparedStatement
(с close()
). Я также рекомендовал бы обрабатывать SQLExceptions в вашем методе и не выбрасывать его, поскольку вам необходимо убедиться, что ваше утверждение и соединение закрыты, даже если возникает исключение.
Примерно так:
Connection connection = dataSource.getConnection();
try {
PreparedStatement statement = connection.prepareStatement();
try {
// Work with the statement
catch (SQLException e ) {
// Handle exceptions
} catch (SQLException e {
// Handle exceptions
} finally {
statement.close();
}
} finally {
connection.close();
}
Кроме того, вам не следует запрашивать базу данных в методе получения поля компонента. Получатели могут вызываться несколько раз в течение каждого запроса. Более элегантный способ - подготовить DashboardList в конструкторе или @PostConstruct
вашего компонента.