Maintenir une Connection
ouvert pour toujours est une très mauvaise idée. Il n'a pas une durée de vie infinie, votre application peut planter chaque fois que la base de données expire la connexion et la ferme. La meilleure pratique consiste à acquérir et fermer Connection
, Statement
et ResultSet
dans le plus court portée possible pour éviter les fuites de ressources et les pannes potentielles d'application causées par les fuites et les délais d'attente.
Étant donné que la connexion à la base de données est une tâche coûteuse, vous devez envisager d'utiliser un pool de connexions pour améliorer les performances de connexion. Un serveur d'application/servletcontainer décent fournit généralement déjà une fonctionnalité de pool de connexions dans le style d'un DataSource
JNDI . Consultez sa documentation pour savoir comment le créer. Dans le cas de Tomcat, par exemple, vous pouvez le trouver ici.
Même lorsque vous utilisez un pool de connexions, vous devez toujours écrire le code JDBC approprié :acquérez et fermer toutes les ressources dans les plus brefs délais. Le pool de connexion s'occupera à son tour de fermer la connexion ou simplement de la restituer au pool pour une réutilisation ultérieure.
Vous pouvez obtenir plus d'informations sur cet article sur la façon de faire les bases de JDBC de la bonne manière. Comme alternative complètement différente, apprenez EJB et JPA. Il résumera tout le passe-partout JDBC pour vous en oneliners.
J'espère que cela vous aidera.
Voir aussi :
- Est-il sûr d'utiliser une instance statique java.sql.Connection dans un système multithread ?
- Est-ce que j'utilise le regroupement de connexions JDBC ?
- Comment dois-je me connecter à la base de données/source de données JDBC dans une application basée sur un servlet ?
- Quand est-il nécessaire ou pratique d'utiliser Spring ou EJB3 ou tous ensemble ?