Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Try-with-resource usa a interface AutoCloseable

Duas dúvidas, preciso implementar a interface AutoCloseable quando uso o Try-with-resource? Ao usar o try, o stm é fechado, e a conexão com o BD?

1 resposta
solução!

Oi Paula! Tudo bem?

O try-with-resources é uma instrução que declara um ou mais "recursos". Entenda recursos como qualquer objeto que precisa ser fechado após o programa ser finalizado. Tudo que estiver dentro do parênteses do try é um recurso e para ser um recurso precisa implementar o AutoCloseable. No caso, o PreparedStatement vai implementar essa classe e não o try-with-resources.

try (PreparedStatement pstm = connection.prepareStatement(sql)) { //O PreparedStatement é um recurso e implementa o AutoCloseable
            pstm.execute();
}

Quanto à conexão com o banco de dados depende da implementação. Se você estiver usando a pool de conexões ela ficará responsável por gerenciar a conexão não precisando que você se preocupe. Do contrário, caso em que você usa o getConnection do DriverManage, é sim interessante utilizar o try-with-resources ou fechar essa conexão manualmente.

Caso tenha mais interesse de entender o funcionamento do try-with-resouces, segue link: https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software