Mantener una Connection
abierto para siempre es una muy mala idea. No tiene una vida útil interminable, su aplicación puede fallar cada vez que la base de datos agota el tiempo de espera de la conexión y la cierra. La mejor práctica es adquirir y cerrar Connection
, Statement
y ResultSet
en el más corto alcance posible para evitar fugas de recursos y posibles bloqueos de aplicaciones causados por las fugas y los tiempos de espera.
Dado que conectar la base de datos es una tarea costosa, debe considerar usar un grupo de conexiones para mejorar el rendimiento de la conexión. Un servidor de aplicaciones/servletcontainer decente generalmente ya proporciona una función de grupo de conexiones en el sabor de un JNDI DataSource
. Consulte su documentación para obtener detalles sobre cómo crearlo. En el caso de, por ejemplo, Tomcat, puede encontrarlo aquí.
Incluso cuando usa un grupo de conexiones, aún debe escribir el código JDBC adecuado:adquiera y cerrar todos los recursos en el menor tiempo posible. El grupo de conexiones, a su vez, se preocupará por cerrar la conexión o simplemente liberarla en el grupo para su posterior reutilización.
Puede obtener más información de este artículo sobre cómo hacer los conceptos básicos de JDBC de la manera correcta. Como alternativa completamente diferente, aprenda EJB y JPA. Abstraerá todo el texto repetitivo de JDBC para usted en oneliners.
Espero que esto ayude.
Ver también:
- ¿Es seguro usar una instancia estática de java.sql.Connection en un sistema multiproceso?
- ¿Estoy utilizando la agrupación de conexiones JDBC?
- ¿Cómo debo conectarme a la base de datos/fuente de datos JDBC en una aplicación basada en servlet?
- ¿Cuándo es necesario o conveniente usar Spring o EJB3 o todos juntos?