я намерен закрыть все ресурсы БД после выхода пользователя из системы
Это уже признак плохой практики. Ресурсы БД должны быть получены и закрыты в кратчайшей возможной области, то есть внутри того же самого блока метода. Вы можете никогда не получить ресурс БД (Connection
, Statement
и / или ResultSet
) в качестве статической переменной или переменной экземпляра. Это квитанция об утечке ресурсов и более серьезные проблемы.
Если исходное намерение состоит в том, чтобы улучшить производительность соединения, вам необходимо ввести пул соединений. Имейте в виду, что это не повод держать открытыми соединения самостоятельно . Просто получите и закройте их как можно скорее, сама реализация пула соединений будет беспокоиться о фактическом закрытии соединения или освобождении его обратно в пул. Это все полностью прозрачно. Достойные серверы приложений поставляются с возможностями создания пула соединений во вкусе источников данных JNDI. Используйте это. После этого вам не нужно беспокоиться ни об открытых ресурсах БД, ни о производительности.