[RESOLVIDO] Erro: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.long

Bom dia. Sou inciante, aprendendo a programar em java.
uso windows 10.
netbeans 8.2
mysql 8.0

Estou com o seguinte erro: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.long

estou tentando conectar o banco de dados mysql com o netbeans, porém quanto tento conectar apresenta o erro.
segue a query:

package conexao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
/**
*

  • @author Higor
    */
    public class ConexaoMySql {

private boolean status = false;
private String mensagem = “”; //variavel que vai informar o status da conexao
private Connection con = null; //variavel para conexao
private Statement statement;
private ResultSet resultSet;

private String servidor = "localhost";
private String nomeDoBanco = "salao";
private String usuario = "root";
private String senha = "qwert";

public ConexaoMySql(){}

public ConexaoMySql(String pServidor, String pNomeDoBanco, String pUsuario, String pSenha){
    this.servidor = pServidor;
    this.nomeDoBanco = pNomeDoBanco;
    this.usuario = pUsuario;
    this.senha = pSenha;
}

/**
 * Abre uma conexao com o banco
 * @return Connection
 */
public Connection conectar(){
    try {
        //Driver do PostgreSQL
        Class.forName("com.mysql.jdbc.Driver").newInstance();

        //local do banco, nome do banco, usuario e senha
        String url = "jdbc:mysql://" + servidor + "/" + nomeDoBanco;
        this.setCon((Connection) DriverManager.getConnection(url, usuario, senha));

        //se ocorrer tudo bem, ou seja, se conectar a linha a segui é executada
        this.status = true;
    }
    catch(ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e){
        JOptionPane.showMessageDialog(null, e.getMessage());
    }
    return this.getCon();
}

/**
 * Executa consultas SQL
 * @param pSQL
 * @return int
 */
public boolean executarSQL(String pSQL){
    try {
        //createStatement de con para criar o Statement
        this.setStatement(getCon().createStatement());

        // Definido o Statement, executamos a query no banco de dados
        this.setResultSet(getStatement().executeQuery(pSQL));
        
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null, ex.getMessage());
        ex.printStackTrace();
        return false;
    }
    return true;
}

public boolean executarUpdateDeleteSQL(String pSQL){
    try {
        
        //createStatement de con para criar o Statement
        this.setStatement(getCon().createStatement());

        // Definido o Statement, executamos a query no banco de dados
        getStatement().executeUpdate(pSQL);
        
    } catch (SQLException ex) {
        ex.printStackTrace();
        return false;
    }
    return true;
}

/**
 * Executa insert SQL
 * @param pSQL
 * @return boolean
 */
public int insertSQL(String pSQL){
    int status = 0;
    try {
        //createStatement de con para criar o Statement
        this.setStatement(getCon().createStatement());

        // Definido o Statement, executamos a query no banco de dados
        this.getStatement().executeUpdate(pSQL);
        
        //consulta o ultimo id inserido
        this.setResultSet(this.getStatement().executeQuery("SELECT last_insert_id();"));
        
        //recupera o ultimo id inserido
        while(this.resultSet.next()){
            status = this.resultSet.getInt(1);
        }
        
        //retorna o ultimo id inserido
        return status;
    } catch (SQLException ex) {
        ex.printStackTrace();
        return status;
    }
}

/**
 * encerra a conexão corrente
 * @return boolean
 */
public boolean fecharConexao(){
   try {
       if((this.getResultSet() != null) && (this.statement != null)){
           this.getResultSet().close();
           this.statement.close();
       }
       this.getCon().close();
       return true;
   } catch(SQLException e) {
       JOptionPane.showMessageDialog(null, e.getMessage());
   }
   return false;
}

/**
 * @return the status
 */
public boolean isStatus() {
    return this.status;
}

/**
 * @return the mensagem
 */
public String getMensagem() {
    return mensagem;
}

/**
 * @return the statement
 */
public Statement getStatement() {
    return statement;
}

/**
 * @return the resultSet
 */
public ResultSet getResultSet() {
    return resultSet;
}

/**
 * @param mensagem the mensagem to set
 */
public void setMensagem(String mensagem) {
    this.mensagem = mensagem;
}

/**
 * @return the con
 */
public Connection getCon() {
    return con;
}

/**
 * @param con the con to set
 */
public void setCon(Connection con) {
    this.con = con;
}

/**
 * @param statement the statement to set
 */
public void setStatement(Statement statement) {
    this.statement = statement;
}

/**
 * @param resultSet the resultSet to set
 */
public void setResultSet(ResultSet resultSet) {
    this.resultSet = resultSet;
}

/**
 * @return the servidor
 */
public String getServidor() {
    return servidor;
}

/**
 * @param servidor the servidor to set
 */
public void setServidor(String servidor) {
    this.servidor = servidor;
}

/**
 * @return the nomeDoBanco
 */
public String getNomeDoBanco() {
    return nomeDoBanco;
}

/**
 * @param nomeDoBanco the nomeDoBanco to set
 */
public void setNomeDoBanco(String nomeDoBanco) {
    this.nomeDoBanco = nomeDoBanco;
}

/**
 * @return the usuario
 */
public String getUsuario() {
    return usuario;
}

/**
 * @param usuario the usuario to set
 */
public void setUsuario(String usuario) {
    this.usuario = usuario;
}

/**
 * @return the senha
 */
public String getSenha() {
    return senha;
}

/**
 * @param senha the senha to set
 */
public void setSenha(String senha) {
    this.senha = senha;
}

}

Em qual linha aparece o erro?

o erro aparece, mas não informa a linha. apenas fica isso " run:
CONSTRUÍDO COM SUCESSO (tempo total: 4 segundos)
"

Erro igual ao seu, dá uma olhada nesse post.

O driver mudou nesta versão.

com.mysql.cj.jdbc.Driver

DriverManager.getConnection(“jdbc:mysql://localhost/test?” +
“user=minty&password=greatsqldb”)

coloquei o drive com.mysql.cj.jdbc.Driver , mas n soube onde colocar a parte DriverManager.getConnection(“jdbc:mysql://localhost/test?” +
“user=minty&password=greatsqldb”) , sou iniciante. apenas colocando o drive correto aparece um erro em uma caixa com uma exclamação e aparece o nome do drive na discrição do erro. pode me ajudar ? ou o fato de aparecer o nome do driver (com.mysql.cj.jdbc.Driver) que dizer que conectou ??

Se é iniciante, volte até as estruturas de controle e de repetição, sintaxe de linguagem e orientação a objetos. Quando deixar de ser iniciante, aí você volta a isso, beleza?

No final deste tópico vc vai encontrar um modelo de conexão que vai te ajudar.
Então é só adaptar ao seu, mas acho que vc vai ter que dar uma estudada sobre conexão um pouco mais.

Mas você consegue.

preciso do banco de dados comunicando pra dar continuidade ao curso que comprei. estou na parte onde coloco os dados no text field e utilizo o botão gravar, avançar, voltar … mas por conta de o drive ter mudado estou tendo problemas em progredir.

Então não venha com esse papinho de “sou iniciante… mimimi”.
Só o driver mudou, não o local onde você carrega o mesmo…

Baixe o driver novo, e configure o driver e o banco conforme o exemplo que te passei.

O resto faz igual ao curso que vc comprou.

baixe o driver para o mysql correspondente, se for o 8 segue o link.
https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.16.zip

1 curtida

Muito obrigado a todos. Problema resolvido com as dicas do RobertoDM.