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

Dúvida no Ex. 2 da Aula 1 - Trabalhando com um banco de dados

Estou usando o banco do postgres e achei estranho que só funcionou quando adicionei isso: Class.forName("org.postgresql.Driver");

alguém sabe me dizer porque so funciona se tiver isso? ou eu fiz errado e por isso tive que colocar isso?


public static void main(String[] args) throws SQLException, ClassNotFoundException {

        Class.forName("org.postgresql.Driver");// SO FUNCIONA COM ISSO
        Connection connection = DriverManager.getConnection("jdbc:postgresql://localhost:5432/loja-virtual", "postgres", "123456");

        Statement statement = connection.createStatement();
        boolean resultado = statement.execute("select * from produto");
        ResultSet resultSet = statement.getResultSet();
        while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String nome = resultSet.getString("nome");
            String descricao = resultSet.getString("descricao");
            System.out.println(id);
            System.out.println(nome);
            System.out.println(descricao);
        }
        resultSet.close();
        statement.close();

        connection.close();
    }

}
1 resposta
solução!

Thiago , Bom dia !

Não você não fez errado seu código está certo , o que está acontecendo é o seguinte .

quando você utiliza o método estático 'Class.forName();' , o classe loader tentará inicializar a classe em destaque neste caso '"org.postgresql.Driver"' e isso irá registrar como driver do postgree avisando a classe java.sql.DriverManager .

Espero ter Ajudado , Bons Estudos

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