Відповіді:
База даних підключення Пули є методом , використовуваним , щоб тримати з'єднання з базою даних відкрити таким чином вони можуть бути повторно використані іншими.
Зазвичай відкриття підключення до бази даних є дорогою операцією, особливо якщо база даних віддалена. Вам потрібно відкрити мережеві сеанси, пройти автентифікацію, перевірити авторизацію тощо. Об'єднання підтримує активні з'єднання, коли пізніше запит на з'єднання використовується один із активних, на відміну від необхідності створення іншого.
Подайте наступну схему для наступних кількох абзаців:
+---------+
| |
| Clients |
+---------+ |
| |-+ (1) +------+ (3) +----------+
| Clients | ===#===> | Open | =======> | RealOpen |
| | | +------+ +----------+
+---------+ | ^
| | (2)
| /------\
| | Pool |
| \------/
(4) | ^
| | (5)
| +-------+ (6) +-----------+
#===> | Close | ======> | RealClose |
+-------+ +-----------+
У своїй найпростішій формі це просто схожий виклик API (1) на виклик API відкритого з’єднання, подібний до "реального". Він спочатку перевіряє пул на відповідне з'єднання (2) і, якщо такий є, він надається клієнту. Інакше створюється новий (3).
"Підходяще з'єднання" - це лише те, що вже є доступ до бази даних, використовуючи правильну інформацію (наприклад, екземпляр бази даних, облікові дані та, можливо, інші речі).
Аналогічно, існує тісний виклик API (4), який насправді не викликає справжнє близьке з'єднання, а передає з'єднання в пул (5) для подальшого використання. У якийсь момент з'єднання в пулі можуть бути фактично закритими (6).
Це досить спрощене пояснення. Реальні реалізації можуть мати змогу обробляти з'єднання з декількома серверами та декількома обліковими записами користувачів, вони можуть попередньо виділити деяку базову лінію з'єднань, так що деякі будуть готові негайно, і вони можуть фактично закрити старі з'єднання, коли схема використання зменшується.
Зображення говорять тисячу слів (paxdiablo дав приголомшливий опис):
Ви можете використовувати бібліотеку apache commons для реалізації пулу з'єднань прозоро: http://commons.apache.org/dbcp/
DBCP також підтримується пул сплячого режиму: http://www.informit.com/articles/article.aspx?p=353736&seqNum=4
Концепція об'єднання об'єднань не тільки на Java, але і на багатьох мовах програмування. Створення нового об'єкта підключення дорого, тому фіксовану кількість з'єднань здійснюють і підтримують у життєвому циклі, створюючи віртуальний пул Java Just ( http://javajust.com/javaques.html ) див. Питання 14 на цій сторінці