Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro ClassNotFoundException

Boa noite,

Sou iniciante nesse mundo de programação e peguei uma sequência de vídeos no youtube para poder adquirir e praticar conhecimento.

No vídeo do sujeito não teve erro algum, já aqui na prática já foram 2 erros, um eu solucionei e o outro empaquei.

Gostaria de saber se alguém consegue me ajudar.

O problema é o seguinte.

  1. Tenho uma classe de conexão e uma tela de cadastro onde no momento estou fazendo um cadastro estático onde eu passo o valor que eu quero na query ao invés de buscar na tela.

  2. Ao clicar no botão para salvar, onde executaria a query de insert me é apresentado o erro de ClassNotFoundException. Mas não consegui achar a solução como disse antes.

Classe de Conexão

package dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 *
 * @author Rafael
 */
public class Conexao {

    public Connection getConnection() throws SQLException, ClassNotFoundException {
        Class.forName("com.mysql.jdbc.Driver");
        System.out.println("driver identificado");
        Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost:5432/cursojava", "postgres", "postgres");

        return conexao;
    }

}

Botão de Salvar

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        try {
            // inserir usuario no banco de dados
            System.out.println("Antes das variáveis");

            Connection conexao;
            conexao = new Conexao().getConnection();

            System.out.println("Antes da SQL");

            String sql = "insert into usuario (usuario,senha) values('admin06','123456');";

            PreparedStatement statement = conexao.prepareStatement(sql);
            statement.execute();

            conexao.close();

        } catch (SQLException | ClassNotFoundException ex) {
            Logger.getLogger(FormCadastroView.class.getName()).log(Level.SEVERE, null, ex);
        }
    }                      

Como podem reparar eu inseri no código:

  • System.out.println("Antes das variáveis");
  • System.out.println("Antes da SQL");

Para achar o exato momento que a exception é executada, no caso acontece antes mesmo de chegar no "Antes da SQL".

2 respostas
solução!

Olá Rafael Fonseca, tudo bem?

Eu acredito que o problema está nessa linha:

Class.forName("com.mysql.jdbc.Driver");

Aqui tem 2 pontos:

  1. Você não está com o jar do mysql

  2. A sua versão do mysql é mais nova, neste caso o nome da classe agora é :

Class.forName("com.mysql.cj.jdbc.Driver");

Agora tem um ponto que esse trecho de código não está sendo utilizado em nenhum momento, sinceramente não entendi a utilização dele, mas de fato o problema está ai :)

Abraços e Bons Estudos :)

Apenas deixando aqui uma satisfação, já consegui resolver o problema tem um tempo.

O problema estava realmente onde você falou, mas eu uso o postgreSQL e estava usando a URL do MYSQL ali hahahah

A do postgreSQL é org.postgresql.Driver.