Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Cerrar conexión con el pool

Buenos días compañeros e instructores.

Con respecto al pool en esta clase que estamos trabajando con el estándar DAO. Tengo la siguiente duda: ¿No tenemos necesidad de cerrar la conexión? Puesto que en el siguiente código cuando pasó la Conexión con como parámetro me lanza una excepción y no me ejecuta los comandos. Pero así como está me funciona.

public class ProductoDAO {
    final private Connection con;

    public ProductoDAO(Connection con) {
        this.con = con;
    }

    public void guardar(Producto producto) {
        try{
            final PreparedStatement statement = con.prepareStatement("INSERT INTO PRODUCTO(nombre,descripcion,cantidad) "
                    + "VALUES(?,?,?)", Statement.RETURN_GENERATED_KEYS);
            try(statement){
                ejecutarRegistro(producto, statement);
            }        
        }catch(SQLException e) {
            throw new RuntimeException(e);
        }
    }
}    

Tengo entendido que el try with resources cuando le paso el parametro al try es para que me cierra la conexión.

Muchas gracias de antemano.

1 respuesta

Hola Alejandra, espero que estés bien!

Desde Java 7, es posible iniciar conexiones sin cerrarlas porque tenemos el método Try-with-Resources, que si el objeto abierto implementa la interfaz AutoClosable, es decir, que puede cerrarse solo, lo hace dentro de Try.

Fuente: https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html

Sin embargo, si desea asegurarse de cerrar la conexión, puede cerrar la conexión en un bloque finally después de los bloques try y catch.

Saludos y buenos estudios!