La connexion à la base de données doit être ouverte uniquement lorsque cela est nécessaire et fermée après avoir effectué tout le travail nécessaire avec elle. Exemple de code :
-
Avant 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
Mais comme l'ouverture manuelle d'une connexion à une base de données est trop coûteuse, il est fortement recommandé d'utiliser un pool de connexion à la base de données
, représenté en Java par DataSource
interface. Cela gérera les connexions physiques à la base de données pour vous et lorsque vous fermerez (c'est-à-dire en appelant Connection#close
), la connexion physique à la base de données sera simplement en mode VEILLE et sera toujours ouverte.
Questions/réponses associées :
Quelques outils pour gérer le regroupement des connexions à la base de données :