2014-12-10 2 views
0

У меня есть общедоступное статическое соединение getConnection(), чтобы получить соединение с БД, и я объявил объект подключения статическим. public static Connection con; Мое сомнение в том, что одновременные пользователи могут иметь несколько соединений, если у меня есть con, как локальная переменная, с getConnection() или статическим будет хорошо?Объект объекта связи

Просьба указать, какие проблемы у меня возникнут для одновременных пользователей, если объект con является статическим.

ответ

0

Когда вы объявляете подключение как статическое, только один пользователь одновременно может подключиться к базе данных. Таким образом, вы создаете ненужное узкое место. Другой вопрос: как вы поддерживаете открытие и закрытие соединения?

Ваше второе предложение, создающее локальную переменную, похоже, устраняет узкое место. Но открытие соединения каждый раз, когда вам нужно получить доступ к базе данных, довольно дорого.

Итак, на самом деле ответ вы должны использовать Connection Pool. Установленное соединение может быть арендовано из пула и использовано без дополнительных накладных расходов.

+0

Спасибо, Куба. Итак, мой следующий вопрос: (1) если я использую сервер JBoss или Tomcat, тогда я должен использовать пул соединений с серверами (2) мне нужно написать свой собственный код, получить 10/20 соединений и сохранить в списке массивов и закрыть их после использования/(3) есть ли какая-либо утилита или библиотека, которые могут быть использованы. – Ray

+0

1. Да, конфигурация описана в соответствующих документах 2. Ни при каких обстоятельствах вы не должны реализовывать ее самостоятельно, если вы не хотите считать ее активной задачей. 3. Существуют библиотеки DBCP и c3po. У первого есть запись о прерывистом развитии, и, честно говоря, я не знаю его нынешнего состояния. Последний был успешно использован в проектах с большой нагрузкой. Там также есть библиотека BoneCP, но я ничего об этом не знаю. –

+0

Еще раз спасибо. Ценить это. – Ray

Смежные вопросы