sql >> Database >  >> RDS >> PostgreSQL

Wanneer wordt een verbinding gesloten bij het aanroepen van JooQ DSLContext's .close(), of helemaal niet?

Huidig ​​antwoord

Deze vraag raakte achterhaald met de introductie van de CloseableDSLContext , wanneer de AutoCloseable semantiek is weer verwijderd uit de meer algemene DSLContext . De onverenigbare wijziging is geïmplementeerd in jOOQ 3.14, om de verwarring die in deze vraag en enkele andere wordt uitgedrukt, aan te pakken, zie:

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

Historisch antwoord

DSLContext werd AutoCloseable met de Java 8-distributies van jOOQ 3.7. De DSLContext.close() Javadoc van de methode legt de semantiek uit van deze close() bel:

Alleen resources toegewezen toen u de DSLContext . maakte zal uitkomen. Geen bronnen die u hebt doorgegeven aan de DSLContext . In uw geval wijst u geen middelen toe in deze try-with-resources verklaring, dus er hoeft aan het einde niets te worden vrijgegeven:

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

Dit zou anders zijn als u een nieuwe Connection had toegewezen daar:

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

Wat betreft uw vragen:

Niks. U moet de levenscyclus ervan zelf beheren, aangezien jOOQ niets weet over uw levenscyclusstrategie voor verbindingen.

Ja.




  1. Voorwaardelijke update_or_create met django

  2. Shuffle een string met mysql/sql

  3. Gebruikt PostgreSQL tf-idf?

  4. Hoe selecteer ik paginering verstandig N aantal records uit MySQL Database?