Эффективный метод для использования соединения нескольких баз данных в Java - PullRequest
3 голосов
/ 03 июля 2011

Это эффективный способ открывать соединение с базой данных для каждой операции базы данных и, соответственно, закрывать или открывать соединение при запуске и продолжать вызывать одно и то же открытое соединение для нескольких операций и закрывать его, когда все действия выполнены.?

Я создаю приложение Java Swing, в котором у меня есть основной фрейм, и с помощью макета карты я выбираю разные панели, и на каждой из этих панелей выполняются разные операции с базой данных.В настоящее время у меня открывается отдельное соединение для каждой панели, поэтому, когда я открываю свое основное приложение, несколько соединений открываются и закрываются.

Поскольку я хочу быть уверенным в том, что я поступаю правильно, избегая любых плохих практик и узких мест в производительности, я задаю этот вопрос экспертам по Java.

Пожалуйста, предложите. Спасибо за вашу помощь.

Ответы [ 3 ]

6 голосов
/ 03 июля 2011

Нет, не рекомендуется «создавать» новое соединение для каждой транзакции базы данных. Создание соединений, как правило, дорого. Попробуйте использовать пул соединений, который абстрагирует семантику открытия и закрытия соединения. Таким образом, ваше приложение может вызывать Connection#close и т. Д., И за кулисами пул будет захватывать и возвращать соединения в опрос подключений соответственно. Есть много решений там; DBCP, C3P0 или BoneCP.

1 голос
/ 03 июля 2011

Вы, безусловно, можете использовать соединение для каждой операции, если у вас есть пул соединений.Создание соединения обходится дорого, но амортизация затрат на все операции путем их объединения делает это возможным.

Вы должны получить соединение, использовать его и возвращать его в пул с каждой операцией в минимально возможном объеме.

0 голосов
/ 03 июля 2011

Подключение к базе данных является относительно дорогой операцией.Обычно вы используете пул соединений.Пул соединений содержит коллекцию соединений с базой данных, которые готовы для использования.Вы должны получить соединение из пула, выполнить запросы по этому соединению, а затем вернуть его в пул (обычно это делается путем закрытия соединения).Пул подключений позаботится о создании новых подключений к базе данных в фоновом режиме, чтобы при необходимости подключения вам не приходилось тратить время на его ожидание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...