sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvornår lukkes en forbindelse, når der kaldes JooQ DSLContexts .close(), hvis overhovedet?

Aktuelt svar

Dette spørgsmål blev forældet med introduktionen af ​​CloseableDSLContext , når AutoCloseable semantik blev fjernet igen fra den mere generelle DSLContext . Den inkompatible ændring blev implementeret i jOOQ 3.14 for at løse forvirringen udtrykt i dette spørgsmål og nogle få andre, se:

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

Historisk svar

DSLContext blev AutoCloseable med Java 8-distributionerne af jOOQ 3.7. DSLContext.close() metodens Javadoc forklarer semantikken i denne close() ring:

Kun ressourcer tildelt, da du konstruerede DSLContext vil blive frigivet. Ikke ressourcer, som du har videregivet til DSLContext . I dit tilfælde allokerer du ingen ressourcer i denne prøv-med-ressourcer erklæring, så der er ikke noget at frigive i slutningen af ​​det:

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

Dette ville være anderledes, hvis du tildelte en ny forbindelse lige der:

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

Angående dine spørgsmål:

Ikke noget. Du skal selv styre dens livscyklus, da jOOQ ikke ved noget om din forbindelses livscyklusstrategi.

Ja.




  1. SQL-fejl (1215):Kan ikke tilføje en begrænsning af en fremmednøgle

  2. Find ud af antallet af måneder mellem 2 datoer

  3. Hvordan fungerer PHP/MySQL-databaseforespørgsler præcist?

  4. Hvorfor SQL Server ignorerer værdier i strengsammenkædning, når ORDER BY-sætning er angivet