sql >> Databasteknik >  >> RDS >> PostgreSQL

När stängs en anslutning när man anropar JooQ DSLContexts .close(), om alls?

Aktuellt svar

Denna fråga blev föråldrad i och med introduktionen av CloseableDSLContext , när 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.




  1. Vilken är den bästa sammanställningen att använda för MySQL med PHP?

  2. visa mysql newline i HTML

  3. Oracle Autonomous Transaction Exempel

  4. Närmaste match, del 3