Когда закрывать connection к базе данных?

0
06 июл 2018 08:12
Всем привет. Предположим, что у меня есть класс UserDaoJdbc, в котором есть набор методов типа selectAll, insert, deleteById и т.д., в которых реализуются обращения к базе данных. Так вот, нужно ли в каждом методе создавать новый connection и закрывать его? Или можно в теле класса, вначале создать один общий connection, им пользоваться во всех методах класса UserDaoJdbc, а закрывать его снаружи, из основного класса через какой-нибудь новый метод в классе UserDaoJdbc, скажем, public void closeConnection()? Или лучше не нарушать инкапсуляцию и не менять состояние connection в классе UDJ снаружи?

Ответов: 1

0
06 июл 2018 08:25
Зависит от вашего приложения.
Если это что-то любительское, которое обрабатывает 1-2 запроса в час и является курсовой работой, то можно закрывать коннекты каждый раз по окончанию основного метода, чтобы не держать лишних соединений с БД.
Если у вас большая нагрузка, то тут уже нужен DataSourcePool, который будет постоянно держать 5-15 соединение с БД для переиспользования.
Ну у и оптимальный способ, это держать один connection и никогда не закрывать. В большинстве случаев, этого будет хватать(правда в этом случае, если БД упадет, то connection станет невалидным, а про переподключение никто не задумывается)
Модераторы: Нет
Сейчас эту тему просматривают: Нет