При доступе к базе данных через JDBC / ODBC следует создавать и закрывать соединение для каждого запроса? - PullRequest
0 голосов
/ 28 мая 2009

Если у вас есть класс, который обслуживает запросы от других классов для данных базы данных, когда следует удерживать соединение с базой данных и когда следует закрывать его и открывать снова при следующем запросе?

Что если это сервис, который реагирует на подключения внешних приложений? (Веб-сервис, Ajax, RPC)

Является ли хорошей идеей удерживать одноэлементное соединение с постоянно открытой базой данных и просто заново открывать его при сбое? Или вам следует открывать новое соединение с базой данных для каждого запроса?

Если поддержание одноэлементного объекта базы данных, у которого всегда открыто соединение с базой данных, является плохой идеей, то существуют ли обстоятельства, когда это хорошая идея? Я часто видел в нем оправдание модели Синглтона?

Я не говорю о новом соединении на запрос базы данных, это было бы глупо.

1 Ответ

1 голос
/ 28 мая 2009

Возможно, вы захотите взглянуть на пул соединений .

В этом случае N соединений открыты и доступны для клиентов. Когда вы «закрываете» соединение, само соединение не закрывается, а возвращается в пул для использования другим клиентом.

Apache DBCP - полезная библиотека для управления этим.

...