Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Đóng các kết nối JDBC trong nhóm

Khi sử dụng Nhóm kết nối, người ta có nên đóng Kết nối ở cuối không? Nếu vậy, không phải mục đích của việc gộp chung đã mất đi? Và nếu không, làm cách nào DataSource biết khi nào một phiên bản cụ thể của Connection được giải phóng và có thể được sử dụng lại? Tôi hơi bối rối về vấn đề này, bất kỳ điểm nào được đánh giá cao.

Có, chắc chắn bạn cũng cần phải đóng kết nối gộp lại. Nó thực sự là một trình bao bọc xung quanh kết nối thực tế. Nó sẽ giải phóng kết nối thực tế trở lại pool. Còn tùy thuộc vào nhóm để quyết định xem liệu kết nối thực sự có thực sự được đóng hoặc được sử dụng lại cho một getConnection() mới gọi điện. Vì vậy, bất kể bạn có đang sử dụng nhóm kết nối hay không, bạn phải luôn luôn đóng tất cả các tài nguyên JDBC theo thứ tự đảo ngược trong finally khối try chặn nơi bạn đã có được chúng. Trong Java 7, điều này có thể được đơn giản hóa hơn nữa bằng cách sử dụng try-with-resources tuyên bố.

Phương pháp sau có bất kỳ điều gì gần với tiêu chuẩn không? Có vẻ như một nỗ lực để lấy kết nối từ nhóm và nếu DataSource không thể được thiết lập, hãy sử dụng DriverManager kiểu cũ. Chúng tôi thậm chí không chắc phần nào đang được thực thi trong thời gian chạy. Lặp lại câu hỏi ở trên, người ta có nên đóng Kết nối ra khỏi phương pháp như vậy không?

Ví dụ là khá đáng sợ. Bạn chỉ cần tra cứu / khởi tạo DataSource chỉ một lần trong khi khởi động ứng dụng trong một số phương thức khởi tạo / khởi tạo của lớp cấu hình DB toàn ứng dụng. Sau đó, chỉ cần gọi getConnection() trên một và cùng một nguồn dữ liệu trong suốt thời gian còn lại của ứng dụng. Không cần đồng bộ hóa cũng như không cần kiểm tra.

Xem thêm:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tôi có thể thao túng mức độ liên quan của tìm kiếm toàn văn bản trong MySQL để làm cho một trường trở nên 'có giá trị' hơn trường khác?

  2. Cách đơn giản nhất để chèn ngày trống trong kết quả sql (trên mysql hoặc perl end) là gì?

  3. Làm thế nào để tham gia hai bảng mysql?

  4. mysql_num_rows () mong đợi tham số 1 là tài nguyên, boolean được đưa vào

  5. Cách tải hình ảnh lên cơ sở dữ liệu MySQL bằng mã PHP