Hola Ernesto,
Gracias traer esa discursión, s una pregunta muy válida. Es importante recordar que en un programa Java, todas las conexiones a la base de datos deben cerrarse explícitamente para liberar los recursos del sistema. Sin embargo, en el código refactorizado que mencionas, parece que el profesor no cierra la conexión explícitamente.
El programa está diseñado para mantener la conexión abierta mientras se ejecuta, y luego se cierra automáticamente cuando el programa termina. Esto se puede hacer en un entorno de desarrollo para simplificar el código, pero no es una buena práctica en un entorno de producción, donde es importante liberar los recursos del sistema tan pronto como sea posible.
En un entorno de producción, normalmente cerrarías la conexión en un bloque finally después de tu bloque try/catch, o usarías un bloque try-with-resources, que cierra automáticamente la conexión, como mencionaste.
Aquí tienes un ejemplo de cómo podrías hacerlo:
try (Connection conn = DriverManager.getConnection(miUrl, miUsuario, miContraseña)) {
// usa la conexión aquí
} catch (SQLException e) {
// maneja cualquier error aquí
}
En este ejemplo, la conexión se cierra automáticamente cuando el bloque try se completa, incluso si se lanza una excepción.
Espero que esto aclare tu duda. Mucho éxito en todo lo que te propongas y si aún sigues confundido aquí estaremos para apoyarte.
¡Vamos juntos!
Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios.