Câu trả lời:
Nhóm kết nối cơ sở dữ liệu là một phương pháp được sử dụng để giữ kết nối cơ sở dữ liệu mở để người khác có thể sử dụng lại chúng.
Thông thường, mở kết nối cơ sở dữ liệu là một hoạt động tốn kém, đặc biệt nếu cơ sở dữ liệu ở xa. Bạn phải mở các phiên mạng, xác thực, kiểm tra ủy quyền, v.v. Pooling giữ cho các kết nối hoạt động để khi kết nối được yêu cầu sau đó, một trong những kết nối được sử dụng theo sở thích là phải tạo một kết nối khác.
Tham khảo sơ đồ sau cho các đoạn tiếp theo:
+---------+
| |
| Clients |
+---------+ |
| |-+ (1) +------+ (3) +----------+
| Clients | ===#===> | Open | =======> | RealOpen |
| | | +------+ +----------+
+---------+ | ^
| | (2)
| /------\
| | Pool |
| \------/
(4) | ^
| | (5)
| +-------+ (6) +-----------+
#===> | Close | ======> | RealClose |
+-------+ +-----------+
Ở dạng đơn giản nhất, nó chỉ là một lệnh gọi API tương tự (1) với một lệnh gọi API kết nối mở tương tự như lệnh gọi "thực". Điều này trước tiên kiểm tra nhóm cho một kết nối phù hợp (2) và, nếu có sẵn, đó là cho khách hàng. Nếu không, một cái mới được tạo ra (3).
"Kết nối phù hợp" chỉ là một kết nối đã có quyền truy cập vào cơ sở dữ liệu bằng cách sử dụng thông tin chính xác (chẳng hạn như cơ sở dữ liệu, thông tin đăng nhập và có thể cả những thứ khác).
Tương tự, có một lệnh gọi API gần (4) không thực sự gọi kết nối gần thực sự , thay vào đó, nó đặt kết nối vào nhóm (5) để sử dụng sau. Tại một số điểm, các kết nối trong nhóm có thể thực sự bị đóng (6).
Đó là một lời giải thích khá đơn giản. Việc triển khai thực tế có thể xử lý các kết nối đến nhiều máy chủ và nhiều tài khoản người dùng, họ có thể phân bổ trước một số đường cơ sở của kết nối để một số sẵn sàng ngay lập tức và họ thực sự có thể đóng các kết nối cũ khi mô hình sử dụng im lặng.
Hình ảnh nói lên hàng ngàn từ (paxdiablo đã đưa ra một mô tả tuyệt vời):
Bạn có thể sử dụng thư viện apache commons để thực hiện tổng hợp kết nối trong suốt: http://commons.apache.org/dbcp/
DBCP cũng là nhóm Hibernate được hỗ trợ: http://www.informit.com/articles/article.aspx?p=353736&seqNum=4
Khái niệm Pooling kết nối không chỉ trong Java mà trên nhiều ngôn ngữ lập trình. Tạo một đối tượng kết nối mới rất tốn kém vì vậy một số lượng kết nối cố định được tạo và duy trì trong vòng đời tạo ra một nhóm ảo Java Chỉ cần ( http://javajust.com/javaques.html ) xem câu hỏi 14 trên trang này