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

11 respostas
mysql
R

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;
}

}

11 Respostas

darlan_machado

Em qual linha aparece o erro?

R

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

rodriguesabner

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

R

O driver mudou nesta versão.

com.mysql.cj.jdbc.Driver

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

R

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 ??

darlan_machado

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?

R

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.

R

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.

darlan_machado

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…

R

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

R

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

Criado 6 de maio de 2019
Ultima resposta 9 de mai. de 2019
Respostas 11
Participantes 4