Bevarelse af en Connection
åben for evigt er en meget dårlig idé. Det har ikke en uendelig levetid, din applikation kan gå ned, når DB'en timeout forbindelsen og lukker den. Bedste praksis er at erhverve og luk Connection
, Statement
og ResultSet
i den korteste mulige muligheder for at undgå ressourcelækager og potentielle programnedbrud forårsaget af lækager og timeouts.
Da det er en dyr opgave at forbinde DB'en, bør du overveje at bruge en forbindelsespulje for at forbedre forbindelsesydeevnen. En anstændig applikationsserver/servletcontainer giver normalt allerede en forbindelsespuljefunktion i smagen af en JNDI DataSource
. Se dens dokumentation for detaljer, hvordan du opretter den. I tilfælde af for eksempel Tomcat kan du finde den her.
Selv når du bruger en forbindelsespulje, skal du stadig skrive korrekt JDBC-kode:erhverve og lukke alle ressourcer i kortest mulige omfang. Forbindelsespuljen vil på sin side bekymre sig om faktisk at lukke forbindelsen eller bare frigive den tilbage til poolen for yderligere genbrug.
Du kan muligvis få noget mere indsigt ud af denne artikel, hvordan du gør det grundlæggende i JDBC på den rigtige måde. Som et helt andet alternativ, lær EJB og JPA. Det vil abstrahere al JDBC-kedelpladen for dig til oneliners.
Håber dette hjælper.
Se også:
- Er det sikkert at bruge en statisk java.sql.Connection-instans i et flertrådssystem?
- Bruger jeg JDBC Connection Pooling?
- Hvordan skal jeg oprette forbindelse til JDBC-databasen/datakilden i en servletbaseret applikation?
- Hvornår er det nødvendigt eller praktisk at bruge Spring eller EJB3 eller dem alle sammen?