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

Fiz uma alteração no código

Quando o professor renomeou a classe para ConnectionFactory eu fiz diferente e também funcionou; fiz assim:

public class TestandoConexao {

    public  Connection conectaNoBanco() throws SQLException { // Aqui deixei como do professor,      



        return DriverManager
                .getConnection("jdbc:mysql://localhost/bdTest?useTimezone=true&serverTimezone=UTC", "root", "t9x7g9a1");

        }

    public void desconectaDoBanco() throws SQLException { // Criei esse método para desconectar do banco, ele recebe a conexão e em seguida fecha.
        Connection cnx = DriverManager
                .getConnection("jdbc:mysql://localhost/bdTest?useTimezone=true&serverTimezone=UTC", "root", "t9x7g9a1");

        cnx.close();

    }

    public void buscaAlunos() throws SQLException { // esse método busca no banco os objetos e retorna em uma lista.
        Connection cnx = DriverManager
                .getConnection("jdbc:mysql://localhost/bdTest?useTimezone=true&serverTimezone=UTC", "root", "root");
        Statement stm = cnx.createStatement();

        stm.execute("select * from aluno");

        ResultSet result = stm.getResultSet();

        while(result.next()) {
            List<Object> listaFinal = new ArrayList<Object>();


            int id = result.getInt("id");
            listaFinal.add(id);

            String nome = result.getString("nome");
            listaFinal.add(nome);

            int idade = result.getInt("idade");
            listaFinal.add(idade);

            boolean matriculado = result.getBoolean("matriculado");

            listaFinal.add(matriculado);


            System.out.println(listaFinal);

        }


    }

Criei outra classe com o método main e chamei esses métodos, funcionaram, e fiquei muito feliz rs

1 resposta
solução!

Guilherme, boa tarde. Mto bom conseguir fazer um código nosso né? Só tenho umas considerações a fazer

public  Connection conectaNoBanco() throws SQLException { // Aqui deixei como do professor,      
        return DriverManager
                .getConnection("jdbc:mysql://localhost/bdTest?useTimezone=true&serverTimezone=UTC", "root", "t9x7g9a1");
        }

    public void desconectaDoBanco() throws SQLException { // Criei esse método para desconectar do banco, ele recebe a conexão e em seguida fecha.
        Connection cnx = DriverManager
                .getConnection("jdbc:mysql://localhost/bdTest?useTimezone=true&serverTimezone=UTC", "root", "t9x7g9a1");
        cnx.close();
    }

    public void buscaAlunos() throws SQLException { // esse método busca no banco os objetos e retorna em uma lista.
        Connection cnx = DriverManager
                .getConnection("jdbc:mysql://localhost/bdTest?useTimezone=true&serverTimezone=UTC", "root", "root");

A gente extrai o códido para uma classe, exatamente para evitar a repitição que está apresentada no trecho abaixo:

DriverManager
                .getConnection("jdbc:mysql://localhost/bdTest?useTimezone=true&serverTimezone=UTC", "root", "root");

Outro ponto, não é necessário vc criar um método de fechar a conexão nesse modelo

public void desconectaDoBanco() throws SQLException { // Criei esse método para desconectar do banco, ele recebe a conexão e em seguida fecha.
        Connection cnx = DriverManager
                .getConnection("jdbc:mysql://localhost/bdTest?useTimezone=true&serverTimezone=UTC", "root", "t9x7g9a1");

        cnx.close();

Pq dessa forma, ele sempre vai abrir uma conexão e vai fechar essa mesma conexão. É interessante vc sempre fechar a conexão depois da operação, no caso no método buscaAlunos(). Assim, ele vai abrir a conexão, buscar o aluno, transformar para um objeto do java e depois fecha a conexão com o banco e dessa maneira não vamos ter conexões abertas durante o ciclo de vida da aplicação.

A ideia aqui é mostrar alguns padrões que ficam melhores no código, porém esses detalhes vão vindo com a experiência no desenvolvimento =) Se tiver alguma dúvida, não deixa de compartilhar aqui no fórum, blz? :)

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