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

Khi nào thì Kết nối bị đóng khi gọi .close () của JooQ DSLContext, nếu có?

Câu trả lời hiện tại

Câu hỏi này đã trở nên lỗi thời với sự ra đời của ClosableDSLContext , khi AutoClosable ngữ nghĩa lại bị xóa khỏi DSLContext có mục đích chung hơn . Thay đổi không tương thích đã được triển khai trong jOOQ 3.14, để giải quyết sự nhầm lẫn được thể hiện trong câu hỏi này và một số câu hỏi khác, hãy xem:

https://github.com/jOOQ/jOOQ/issues/10512

Câu trả lời lịch sử

DSLContext đã trở thành AutoClosable với các bản phân phối Java 8 của jOOQ 3.7. DSLContext.close () Javadoc của method giải thích ngữ nghĩa của close () này gọi:

Chỉ tài nguyên được phân bổ khi bạn xây dựng DSLContext sẽ được phát hành. Không phải tài nguyên mà bạn đã chuyển cho DSLContext . Trong trường hợp của bạn, bạn không phân bổ bất kỳ tài nguyên nào trong try-with-resources này nên không có gì được phát hành ở cuối nó:

try (DSLContext context = DSL.using(configuration); ...) { ... }

Điều này sẽ khác nếu bạn cấp phát một Kết nối mới ngay tại đó:

try (DSLContext context = DSL.using("jdbc:h2:~/test", "sa", ""); ...) { ... }

Về câu hỏi của bạn:

Không. Bạn phải tự mình kiểm soát vòng đời của nó vì jOOQ không biết gì về chiến lược vòng đời kết nối của bạn.

Có.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trình tự PostgreSQL đảm bảo một ID duy nhất

  2. Postgres / psycopg2 - Chèn mảng chuỗi

  3. Postgresql JSONB sắp ra mắt. Dùng gì bây giờ? Hstore? JSON? EAV?

  4. Ngoại lệ trong JPA khi sử dụng tệp hạt giống cho PostgreSQL

  5. tìm vị trí gần nhất theo vĩ độ và kinh độ trong postgresql