Pergunta

0 código a seguir tem como objetivo retornar todos os autores de um sistema de bibliotecas . Analise-o e então marque a alternativa correta. private List (Autor)getTodos() ( var autores=new Arraylis t<Autor>(is try (var conn =BD.getConn ection()i var start =onn.crez teStatem ent(); var rs=stmt .executeo uery("SE LECT FROM A utor")) f while (rs next()) autores.a dc new Autor (rs.get Int("id Autor -"), rs.getstri ng("nome ") ); ); ) catch (SQ Exception e) { System.exi t(10); return autores; a ) É importante chamar o método close() das variáveis conn, stmt e rs para liberar os recursos do banco de dados Esses comandos deveriam ser adicionados a um bloco finally. b ) As variáveis conn, stmt e rs estão criadas na mesma linha do try pois podem disparar uma SQLException. c ) 0 primeiro autor do banco não será carregado, uma vez que o método next é chamado antes mesmo de se fazer a primeira leitura. d ) Mesmo não havendo um tratamento muito adequado , somos obrigados , a capturar a SQI Exception na linha 13. uma vez que se trata de uma exceção verificada.
Solução

3.3264 Voting

AntónioMestre · Tutor por 5 anos
Responder
alternativa correta é a letra a) É importante chamar o método close() das variáveis conn, stmt e rs para liberar os recursos do banco de dados. Esses comandos deveriam ser adicionados a um bloco finally.
O código fornecido tem a intenção de retornar todos os autores de um sistema de bibliotecas. No entanto, há alguns problemas no código que devem ser corrigidos:
1. A classe 'BD' não está definida no código fornecido, portanto, não é possível determinar se ela é responsável por criar uma conexão com o banco de dados. Se for o caso, o método 'getConnection()' deve ser chamado em uma instância da classe 'BD'.
2. O método 'createStatement()' é usado para criar um objeto 'Statement' que será usado para executar a consulta SQL. No entanto, o método 'createStatement()' deve ser chamado em um objeto 'Connection', portanto, a linha 'var start = conn.createStatement();' deve ser modificada para 'var start = conn.createStatement();'.
3. O método 'executeQuery()' é usado para executar a consulta SQL e retornar um objeto 'ResultSet' que será usado para ler os resultados da consulta. No entanto, o método 'executeQuery()' deve ser chamado em um objeto 'Statement', portanto linha 'var rs = stnt.executeQuery("SELECT FROM Autor");' deve ser modificada para 'var rs = stmt.executeQuery("SELECT FROM Autor");'.
4. O método 'close()' deve ser chamado em cada um dos objetos 'Connection', 'Statement' e 'ResultSet' para liberar os recursos do banco de dados. No entanto, o método 'close()' não é chamado no código fornecido. Para corrigir isso, o método 'close()' deve ser chamado em cada um dos objetos 'conn', 'tmt' e 'rs' dentro de um bloco 'finally' para garantir que eles sejam sempre fechados, mesmo que ocorra uma exceção.
Portanto, a alternativa correta é a letra a) É importante chamar o método close() das variáveis conn, stmt e rs para liberar os recursos do banco de dados. Esses comandos deveriam ser adicionados a um blo.
O código fornecido tem a intenção de retornar todos os autores de um sistema de bibliotecas. No entanto, há alguns problemas no código que devem ser corrigidos:
1. A classe 'BD' não está definida no código fornecido, portanto, não é possível determinar se ela é responsável por criar uma conexão com o banco de dados. Se for o caso, o método 'getConnection()' deve ser chamado em uma instância da classe 'BD'.
2. O método 'createStatement()' é usado para criar um objeto 'Statement' que será usado para executar a consulta SQL. No entanto, o método 'createStatement()' deve ser chamado em um objeto 'Connection', portanto, a linha 'var start = conn.createStatement();' deve ser modificada para 'var start = conn.createStatement();'.
3. O método 'executeQuery()' é usado para executar a consulta SQL e retornar um objeto 'ResultSet' que será usado para ler os resultados da consulta. No entanto, o método 'executeQuery()' deve ser chamado em um objeto 'Statement', portanto linha 'var rs = stnt.executeQuery("SELECT FROM Autor");' deve ser modificada para 'var rs = stmt.executeQuery("SELECT FROM Autor");'.
4. O método 'close()' deve ser chamado em cada um dos objetos 'Connection', 'Statement' e 'ResultSet' para liberar os recursos do banco de dados. No entanto, o método 'close()' não é chamado no código fornecido. Para corrigir isso, o método 'close()' deve ser chamado em cada um dos objetos 'conn', 'tmt' e 'rs' dentro de um bloco 'finally' para garantir que eles sejam sempre fechados, mesmo que ocorra uma exceção.
Portanto, a alternativa correta é a letra a) É importante chamar o método close() das variáveis conn, stmt e rs para liberar os recursos do banco de dados. Esses comandos deveriam ser adicionados a um blo.
Clique para avaliar: