La connessione al database deve essere aperta solo quando necessario e chiusa dopo aver eseguito tutto il lavoro necessario con essa. Esempio di codice:
-
Prima di Java 7:
Connection con = null; try { con = ... //retrieve the database connection //do your work... } catch (SQLException e) { //handle the exception } finally { try { if (con != null) { con.close(); } } catch (SQLException shouldNotHandleMe) { //... } }
-
Java 7:
try (Connection con = ...) { } catch (SQLException e) { } //no need to call Connection#close since now Connection interface extends Autocloseable
Ma poiché l'apertura manuale di una connessione al database è troppo costosa, si consiglia vivamente di utilizzare un pool di connessione al database
, rappresentato in Java con DataSource
interfaccia. Questo gestirà le connessioni fisiche al database per te e quando chiudi it (ovvero chiamando Connection#close
), la connessione fisica al database sarà solo in modalità SLEEP e sarà ancora aperta.
Domande/risposte correlate:
Alcuni strumenti per gestire il pool di connessioni al database: