1
resposta

Método recuperarConexao() static e uso do try with resources

Nesse contexto, o método de recuperar conexão faria sentido ser static?

public class ConnectionFactory {
    public static Connection recuperarConexao() throws SQLException {
        return DriverManager.
                getConnection("jdbc:mysql://localhost:3306/loja_virtual?useTimezone=true&serverTimezone=UTC", "root", "xxxxxx");
    }
}

O uso de try with resources seria a melhor solução para não utilizarmos o bloco finally?

import java.sql.*;

public class TestaListagem {
    public static void main(String[] args) {

        try (Connection connection = ConnectionFactory.recuperarConexao(); Statement stm = connection.createStatement()) {

            String sql = "SELECT id ,nome, descricao FROM produto";

            stm.execute(sql);

            try (ResultSet resultSet = stm.getResultSet()) {
                while (resultSet.next()) { //percorre os resultados no banco
                    Integer id = resultSet.getInt("id");
                    String nome = resultSet.getString("nome");
                    String descricao = resultSet.getString("descricao");

                    System.out.println("Id: " + id);
                    System.out.println("Nome: " + nome);
                    System.out.println("Descrição: " + descricao);
                    System.out.println();
                }
            } catch (Exception e) {
                e.getMessage();
            }

        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}
1 resposta

Ola, boa tarde. Não tem problema ser static, mas a questão é que a url ficaria disponível para todo o projeto, então eu prefiro a abordagem de criar o objeto para ter acesso a isso.

O segundo ponto, não é nem por questão do finally e sim por não ser necessário chamar os métodos close dos statements. =)