No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Java SE: SQL y Bases de Datos

Curso de Java SE: SQL y Bases de Datos

Ana Fernanda Gutierrez Villanueva

Ana Fernanda Gutierrez Villanueva

Optimización de recursos

8/22
Recursos

Es una buena práctica cerrar los recursos con el método close() después de usarlos para liberar los recursos utilizados. Esto se aplica a la programación JDBC con Java, así como a cualquier otra situación en la que se utilicen recursos del sistema, como archivos o sockets. Una forma común de hacerlo es usando el bloque finally para asegurarnos de que los recursos se cierren incluso si se produce una excepción en el código.

Otra forma introducida en Java 7 es usar la característica “Try with resources” que implementan la interfaz AutoCloseable o su subinterfaz Closeable. Antes de la introducción del “try con recursos”, era necesario cerrar manualmente los recursos abiertos utilizando bloques finally para asegurarse de que se liberaran correctamente, incluso en caso de excepciones. Sin embargo, esto puede ser propenso a errores y aumenta la cantidad de código necesario. Al utilizar esta estructura, los recursos declarados dentro del bloque try se cierran automáticamente al finalizar el bloque, ya sea que se haya producido una excepción o no.

Si tienes una clase que implementa la interfaz AutoCloseable o Closeable, no es necesario agregar manualmente la interfaz AutoCloseable en el código.

Aportes 11

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Método close(): Cerrar los recursos con el método close() después de usarlos para liberar los recursos utilizados

excelente este curso se ve que ya esta un poco mas actulizado
Algo que no dijo por si no notaron es que el main cambio cuando le dio clic al error en rojo, no lo había notado y pensé que me faltaba algo. Queda así: public static void main(String\[] args) throws SQLException
El IDE me deja hacerlo automáticamente ![](https://static.platzi.com/media/user_upload/image-9292fd29-28b5-4cb8-8f32-19a777ddd403.jpg)![](https://static.platzi.com/media/user_upload/image-c94d88f5-8ee6-40a2-be6a-4b4786f0c5c4.jpg)
Al realizar el cierre usando finally no se deberia cerrar cada recurso, de esta manera? ![](https://static.platzi.com/media/user_upload/image-8c451cf3-1c9c-4c07-b924-c0711df391cc.jpg)
perfect
Solo me funcionan los if del finally cambiando el main asi: public static void main(String\[] args) throws SQLException. Me pueden explicar? Tengo el código igual
package CAPAS.MAIN; import CAPAS.DATOS.PERSONA; import CAPAS.NEGOCIOS.CNPersona; import CAPAS.NEGOCIOS.Repositorio; import CAPAS.UTILITARIO.CONECTARBD; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Main { public static void main(String\[] args) { try(Connection myConn= CONECTARBD.getInstance()){ Repositorio\<PERSONA> repositorio =new CNPersona(); System.out.println("-------- IMPRIMIR TODOS LOS REGISTROS"); repositorio.LeerTodos().forEach(System.out::println); System.out.println("-------- IMPRIMIR EL SEGUNDO REGISTRO"); System.out.println(repositorio.LeerporId(2)); System.out.println("--------- AGREGAR UN EMPLEADO ---------"); PERSONA persona = new PERSONA(); persona.setIdPersona(9); persona.setNombrePersona("Patricio"); repositorio.Almacenar(persona); System.out.println("-------- IMPRIMIR TODOS LOS REGISTROS"); repositorio.LeerTodos().forEach(System.out::println); } catch (Exception e) { e.printStackTrace(); System.out.println("Se presento un error"); } } }
`Connection`, `Statement`**** y `ResultSet`**** extienden de `Wrapper`**** y `AutoCloseable`. Por eso no es necesario agregar manualmente la interfaz `AutoCloseable`**** en el código.
Cómo puedo implementar este mismo ejemplo usando no CreateStatement. Sino con prepareStatement?

Excelente