Aktuellt svar
Denna fråga blev föråldrad i och med introduktionen av AutoCloseable
semantik togs bort igen från den mer generella DSLContext
. Den inkompatibla ändringen implementerades i jOOQ 3.14, för att lösa den förvirring som uttrycks i denna fråga och några andra, se:
https://github.com/jOOQ/jOOQ/issues/10512
Historiskt svar
DSLContext
blev AutoCloseable
med Java 8-distributionerna av jOOQ 3.7. DSLContext.close()
Metodens Javadoc förklarar semantiken för denna close()
ring:
Endast resurser tilldelade när du konstruerade DSLContext
kommer att släppas. Inte resurser som du skickade till DSLContext
. I ditt fall tilldelar du inga resurser i denna prova-med-resurser
uttalande, så det finns inget att släppa i slutet av det:
try (DSLContext context = DSL.using(configuration); ...) { ... }
Detta skulle vara annorlunda om du tilldelade en ny Anslutning
precis där:
try (DSLContext context = DSL.using("jdbc:h2:~/test", "sa", ""); ...) { ... }
Angående dina frågor:
Ingenting. Du måste styra dess livscykel själv eftersom jOOQ inte vet något om din anslutningslivscykelstrategi.
Ja.