Que tipo de erro

30 respostas
carlos_nascimento

Boa noite, Estou tentando salvar no banco e tá dando este erro.
alguém sabe que erro é este:

run:

Conectado ao Banco de Dados

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

at java.net.URLClassLoader$1.run(URLClassLoader.java:200)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:188)

at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)

at java.lang.ClassLoader.loadClass(ClassLoader.java:251)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:169)

at br.com.carlostecnologia.persistencia.dao.ConexaoBanco.getConnection(ConexaoBanco.java:29)

at br.com.carlostecnologia.persistencia.dao.CadastroDAO.salvar(CadastroDAO.java:27)

at br.com.carlostecnologia.negocio.bo.CadastroBO.salvar(CadastroBO.java:33)

at br.com.carlostecnologia.apresentacao.Form.btsalvarActionPerformed(Form.java:336)

at br.com.carlostecnologia.apresentacao.Form.access$100(Form.java:14)

at br.com.carlostecnologia.apresentacao.Form$2.actionPerformed(Form.java:109)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)

at java.awt.Component.processMouseEvent(Component.java:6041)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)

at java.awt.Component.processEvent(Component.java:5806)

at java.awt.Container.processEvent(Container.java:2058)

at java.awt.Component.dispatchEventImpl(Component.java:4413)

at java.awt.Container.dispatchEventImpl(Container.java:2116)

at java.awt.Component.dispatchEvent(Component.java:4243)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)

at java.awt.Container.dispatchEventImpl(Container.java:2102)

at java.awt.Window.dispatchEventImpl(Window.java:2440)

at java.awt.Component.dispatchEvent(Component.java:4243)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

java.lang.NullPointerException

at br.com.carlostecnologia.persistencia.dao.CadastroDAO.salvar(CadastroDAO.java:29)

at br.com.carlostecnologia.negocio.bo.CadastroBO.salvar(CadastroBO.java:33)

at br.com.carlostecnologia.apresentacao.Form.btsalvarActionPerformed(Form.java:336)

at br.com.carlostecnologia.apresentacao.Form.access$100(Form.java:14)

at br.com.carlostecnologia.apresentacao.Form$2.actionPerformed(Form.java:109)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)

at java.awt.Component.processMouseEvent(Component.java:6041)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)

at java.awt.Component.processEvent(Component.java:5806)

at java.awt.Container.processEvent(Container.java:2058)

at java.awt.Component.dispatchEventImpl(Component.java:4413)

at java.awt.Container.dispatchEventImpl(Container.java:2116)

at java.awt.Component.dispatchEvent(Component.java:4243)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)

at java.awt.Container.dispatchEventImpl(Container.java:2102)

at java.awt.Window.dispatchEventImpl(Window.java:2440)

at java.awt.Component.dispatchEvent(Component.java:4243)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

20/02/2013 21:10:57 br.com.carlostecnologia.negocio.bo.CadastroBO salvar

SEVERE: null

java.lang.NullPointerException

at br.com.carlostecnologia.persistencia.dao.CadastroDAO.salvar(CadastroDAO.java:29)

at br.com.carlostecnologia.negocio.bo.CadastroBO.salvar(CadastroBO.java:33)

at br.com.carlostecnologia.apresentacao.Form.btsalvarActionPerformed(Form.java:336)

at br.com.carlostecnologia.apresentacao.Form.access$100(Form.java:14)

at br.com.carlostecnologia.apresentacao.Form$2.actionPerformed(Form.java:109)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)

at java.awt.Component.processMouseEvent(Component.java:6041)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)

at java.awt.Component.processEvent(Component.java:5806)

at java.awt.Container.processEvent(Container.java:2058)

at java.awt.Component.dispatchEventImpl(Component.java:4413)

at java.awt.Container.dispatchEventImpl(Container.java:2116)

at java.awt.Component.dispatchEvent(Component.java:4243)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)

at java.awt.Container.dispatchEventImpl(Container.java:2102)

at java.awt.Window.dispatchEventImpl(Window.java:2440)

at java.awt.Component.dispatchEvent(Component.java:4243)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

Código para Salvar no banco.

public void salvar(CartaoCredcard credcard) throws SQLException, Exception{
    
    Connection conexao = null;
    PreparedStatement statement = null;
       try {
           
           conexao =  (Connection) ConexaoBanco.getConnection();    
     
       statement = (PreparedStatement) conexao.prepareStatement("INSERT INTO parcelado(valorCartao,valorLiquido, data)VALUES (?,?,?) " );
    
     statement.setDouble(1,credcard.getValorCartao());
     statement.setDouble(2,credcard.getValorLiquido());

     Date data = new Date(System.currentTimeMillis());
     SimpleDateFormat formataData = new SimpleDateFormat("dd-mm-yyyy");
     formataData.format(data);
     
     statement.setDate(3,credcard.getData());   
     
     statement.executeUpdate();
     
       } catch (Exception e) {
         e.printStackTrace();
         throw e;
       }finally{
           
           if (statement != null && !statement.isClosed()) {
                statement.close();
            }
            if (conexao != null && !conexao.isClosed()) {
                conexao.close();
            }
           
           
       }

     
     }
   
}

30 Respostas

B

http://www.guj.com.br/articles/7

sergiotaborda

O bom do java é o seu stacktrace bem escrito: ele lhe diz a resposta à sua pergunta logo na primeira linha

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

A classe com.mysql.jdbc.Driver não foi encontrada. O que significa que o Driver do mysql não foi encontrado. E não foi pq vc não o colocou no classpath da aplicação.
Simples assim.

espinheira

sergiotaborda:
O bom do java é o seu stacktrace bem escrito: ele lhe diz a resposta à sua pergunta logo na primeira linha

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

A classe com.mysql.jdbc.Driver não foi encontrada. O que significa que o Driver do mysql não foi encontrado. E não foi pq vc não o colocou no classpath da aplicação.
Simples assim.

Corretíssimo…

JARDEL_RODRIGUES

sergiotaborda:

A classe com.mysql.jdbc.Driver não foi encontrada. O que significa que o Driver do mysql não foi encontrado. E não foi pq vc não o colocou no classpath da aplicação.
Simples assim.

Botão direito em cima do Driver, build path > add build path.

carlos_nascimento

Deixa ver se entendir, eu tenho que colocar a classe path na classe de conexão?

Jardel.ads:
sergiotaborda:

A classe com.mysql.jdbc.Driver não foi encontrada. O que significa que o Driver do mysql não foi encontrado. E não foi pq vc não o colocou no classpath da aplicação.
Simples assim.

Botão direito em cima do Driver, build path > add build path.

carlos_nascimento

O que não tô entendendo que preciso fazer isso pq eu testei a classe de conexão e o mesmo conecta ao banco.
o banco tá instalado criado as tabela tudo certo.

jemaretti:
Boa tarde,

1° vc precisa fazer o download do .jar do mysql

http://dev.mysql.com/downloads/connector/

2° descompacte o .zip e lá dentro vc vai encotrar um .jar

3° cole esse .jar na pasta lib no WEB-INF do seu projeto.

WebContent/WEB-INF/lib

4° Dê um clique com o botão direto sobre o jar e vá em Build path - add build path,

boa sorte :)

R

Conecta como? Pelo erro que vc passou, isso acontece antes de conectar:

Conectado ao Banco de Dados…
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)

carlos_nascimento

Eu estou usando a IDE Netebeans nela não tem pasta lib, vc deve tá usando o eclipes. No NetBeans como devo fazer.

jemaretti:
Boa tarde,

1° vc precisa fazer o download do .jar do mysql

http://dev.mysql.com/downloads/connector/

2° descompacte o .zip e lá dentro vc vai encotrar um .jar

3° cole esse .jar na pasta lib no WEB-INF do seu projeto.

WebContent/WEB-INF/lib

4° Dê um clique com o botão direto sobre o jar e vá em Build path - add build path,

boa sorte :)

JARDEL_RODRIGUES

O que você tem que fazer é o seguinte…

Botão direito em cima do projeto
Propriedades
Bibliotecas
Adicionar Jar/Pasta (voce proucura o seu connector e adiciona)

Qualquer dúvida é só falar, e se der certo nao esqueça de editar seu tópico e colocar [RESOLVIDO]

carlos_nascimento

Oi
Jardel, fiz o que vc mandou e continua o mesmo ERRO, adicionei conector onde vc mandou e nada o mesmo erro.

Tem outra solução…

Jardel.ads:
O que você tem que fazer é o seguinte…

Botão direito em cima do projeto
Propriedades
Bibliotecas
Adicionar Jar/Pasta (voce proucura o seu connector e adiciona)

Qualquer dúvida é só falar, e se der certo nao esqueça de editar seu tópico e colocar [RESOLVIDO]

JARDEL_RODRIGUES

Post seu código que faz a conexão com o banco.

carlos_nascimento
public void salvar(CartaoCredcard credcard) throws SQLException, Exception{  
          
        Connection conexao = null;  
        PreparedStatement statement = null;  
           try {  
                 
               conexao =  (Connection) ConexaoBanco.getConnection();      
           
           statement = (PreparedStatement) conexao.prepareStatement("INSERT INTO parcelado(valorCartao,valorLiquido, data)VALUES (?,?,?) " );  
          
         statement.setDouble(1,credcard.getValorCartao());  
         statement.setDouble(2,credcard.getValorLiquido());  
      
         Date data = new Date(System.currentTimeMillis());  
         SimpleDateFormat formataData = new SimpleDateFormat("dd-mm-yyyy");  
         formataData.format(data);  
           
         statement.setDate(3,credcard.getData());     
           
         statement.executeUpdate();  
           
           } catch (Exception e) {  
             e.printStackTrace();  
             throw e;  
           }finally{  
                 
               if (statement != null && !statement.isClosed()) {  
                    statement.close();  
                }  
                if (conexao != null && !conexao.isClosed()) {  
                    conexao.close();  
                }  
                 
                 
           }  
      
           
         }  
         
    }
erico_kl

Esse não é o código que faz a conexão com o banco, mas sim a classe ConexaoBanco

Não importa se você está usando NetBeans, eclipse ou bloco de notas. O problema é que a sua aplicação não está achando a classe com.mysql.jdbc.Driver… Se você adicionou no classpath (javac -cp …) o erro não irá mais acontecer…

Confira se o jar que você está importando - se é que está - é o correto

JARDEL_RODRIGUES

O jar para conexão com o banco MySQL
http://dev.mysql.com/downloads/connector/j/

adiciona ele no projeto como foi citado acima.

e o exemplo de uma conexão com o banco

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

public class Conexao {

	public static Connection getConexao() {
		Connection con = null;
		try {
			// Carrega o Driver
			Class.forName("com.mysql.jdbc.Driver");

			// Banco/Ip/Database
			String url = "jdbc:mysql://localhost:3306/Clube";

			// url do banco, usuario e senha
			con = DriverManager.getConnection(url, "root", "senha");
			System.out.println("Conectou...");

		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
			return con;
	}

	public static void main(String[] args) {
		Conexao.getConexao();
	}
}
carlos_nascimento

Desculpa post o código errado. Agora sim é este aí.

public class ConexaoBanco {
    
    
	 
	    private static final String URL_MYSQL = "jdbc:mysql://localhost/credcardb";
	    private static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";
	    private static final String USER = "root";
	    private static final String PASS = "";
	 
	    public static Connection getConnection() {
	        System.out.println("Conectando ao Banco de Dados...");
	        try {
	            Class.forName(DRIVER_CLASS);
	            return DriverManager.getConnection(URL_MYSQL, USER, PASS);
	        } catch (ClassNotFoundException e) {
	            e.printStackTrace();
	        } catch (SQLException e) {
	            throw new RuntimeException(e);
	        }
	        return null;
	    }
	}

erico_kl:
Esse não é o código que faz a conexão com o banco, mas sim a classe ConexaoBanco

Não importa se você está usando NetBeans, eclipse ou bloco de notas. O problema é que a sua aplicação não está achando a classe com.mysql.jdbc.Driver… Se você adicionou no classpath (javac -cp …) o erro não irá mais acontecer…

Confira se o jar que você está importando - se é que está - é o correto

carlos_nascimento

Desculpa mas post o código errado. Agora sim o correto.

public class ConexaoBanco {
    
    
	 
	    private static final String URL_MYSQL = "jdbc:mysql://localhost/credcardb";
	    private static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";
	    private static final String USER = "root";
	    private static final String PASS = "";
	 
	    public static Connection getConnection() {
	        System.out.println("Conectando ao Banco de Dados...");
	        try {
	            Class.forName(DRIVER_CLASS);
	            return DriverManager.getConnection(URL_MYSQL, USER, PASS);
	        } catch (ClassNotFoundException e) {
	            e.printStackTrace();
	        } catch (SQLException e) {
	            throw new RuntimeException(e);
	        }
	        return null;
	    }
	}
JARDEL_RODRIGUES

eu testei tua conexão aqui, não rodou
faz igual esse exemplo que eu criei

carlos_nascimento

Fiz o que vc mandou colocando seu código e nada, tá dando o mesmo erro não encontra o Drive.

Testei seu código de conexão também aqui não rodou, o meu rodou testei ele conecta.
Jardel não sei mais o que faço.

tem outra sugestão??

Jardel.ads:
eu testei tua conexão aqui, não rodou
faz igual esse exemplo que eu criei

yfalbino

vou ser sincero… nao gosto de usar classes de conexão, portanto vou mandar o codigo de conexão que eu uso…
mas antes, baixe o driver do mysql que te passaram o link e adicione ele na sua pasta “bibliotecas” no netbeans

tente este codigo:

Connection con; try { Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql://localhost:3306/seuBanco", "root", "suaSenha"); System.out.println("Conexão realizada com sucesso."); con.close(); } catch (SQLException ex) { System.out.println(ex); }

carlos_nascimento

Já baixei descompactei e adicionei no projeto, não sei o que tá acontecendo acho que deve ser outra coisa tô analisando com mas calma as minhas classe.
E como vc faria se não usar classe de conexão??

yfalbino:
vou ser sincero… nao gosto de usar classes de conexão, portanto vou mandar o codigo de conexão que eu uso…
mas antes, baixe o driver do mysql que te passaram o link e adicione ele na sua pasta “bibliotecas” no netbeans

tente este codigo:

Connection con; try { Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql://localhost:3306/seuBanco", "root", "suaSenha"); System.out.println("Conexão realizada com sucesso."); con.close(); } catch (SQLException ex) { System.out.println(ex); }

yfalbino

Já baixei descompactei e adicionei no projeto, não sei o que tá acontecendo acho que deve ser outra coisa tô analisando com mas calma as minhas classe.
E como vc faria se não usar classe de conexão??

para cada vez que eu preciso usar o banco de dados, eu chamo essa classe, pode até ser um pouco confuso no começo, mas na minha opniao, o codigo fica mais organizado…

se o seu mysql connector esta importado da maneira certa no netbeans, nao é para dar erro na conexão

voce pode colocar a Exception que ele esta dando na hora que voce tenta conectar com o banco ?

JARDEL_RODRIGUES

yfalbino

O problema dele, não está encontrando o Driver, mas até agora não entendo o porque ja passei o Driver certo pra ele, passei um exemplo de conexão com o banco que ele deveria usar e também ja dei os passo de como importar o driver do mysql para o net beans

carlos nascimento

utiliza esse exemplo de conexão que eu fiz, nao esqueça de modicar o nome do usuario, senha e o nome do banco (caso seja diferente), e outra se nao compilar publica o erro pra mim da uma olhada, qualquer duvida se continuar o erro eu faço uma vídeo aula pra ver se tu consegue resolver esse problema.

yfalbino

Jardel.ads

sabe o que pode ser ?

na classe de conexão dele, a porta nao esta indicada !!!

carlos nascimento

tente substituir esta linha de codigo:

private static final String URL_MYSQL = "jdbc:mysql://localhost/credcardb";

por esta:

private static final String URL_MYSQL = "jdbc:mysql://localhost:3306/credcardb";

teste isso e fale se o erro permanecer

R

Ou pode registrar o driver de uma forma mais empirica:

Ao inves de usar o Class.forName();

use o DriverManager.registerDriver(new com.mysql…)

Quando voce for instanciar a classe do seu driver verifique se aparece no autocomplete, se sim, entao ele realmente esta la.

freakazoid

Não tem segredo para fazer conexão com o DB. Segue exemplo:

public Connection getConexao() {

		Connection conn = null;

		try {

			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager.getConnection("url", "user","password");

			return conn;
		} catch (ClassNotFoundException erroClass) {
			System.out.println("Classe Driver JDBC não foi localizado, erro = "
					+ erroClass);
		} catch (SQLException erroSQL) {
			System.out.println("Erro de conexão com o Banco de dados, erro = "
					+ erroSQL);
		}

		return conn;
	}

Como já foi mencionado a classe com.mysql.jdbc.Driver não é encontrada em tempo de execução. Tente remover e adicionar o .jar novamente.

Abs!

carlos_nascimento

Isso que vc tá mandando fazer já fiz antes essa possibilidade, coloquei a porta 3306/credcardb e o banco.

Veja o que eu fiz peguei o conectou do java descompactei peguei a pasta inteira e colei no projeto o correto é isso mesmo.
Acho que vou usar o exemplo que yfalbino fazendo uma fábrica de driver usando padrão de projeto se não me engano.
Outra coisa no meu banco para conectar uso minha senha eu tenho que passar essa senha na classe de conexao do banco???
veja o erro
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

yfalbino:
Jardel.ads

sabe o que pode ser ?

na classe de conexão dele, a porta nao esta indicada !!!

carlos nascimento

tente substituir esta linha de codigo:

private static final String URL_MYSQL = "jdbc:mysql://localhost/credcardb";

por esta:

private static final String URL_MYSQL = "jdbc:mysql://localhost:3306/credcardb";

teste isso e fale se o erro permanecer

JARDEL_RODRIGUES

carlos nascimento

é obrigatório você passar sua senha para que a conexão possa encontra o banco.

con = DriverManager.getConnection("jdbc:mysql://localhost:3306/database", "root", "senha");

carlos_nascimento

Muito obrigado Jardel e os outros colegas aqui do grupo, já conseguir resolver este problema, o professor me ajudou fazendo por outrocaminho digo na parte esqueda do netbeans tem um opção que entra na biblioteca lá incluiu o conector e o mesmo não estava errado. Valeu mesmo pessoal pela ajuda e compreenção de todos.

Jardel.ads:
carlos nascimento

é obrigatório você passar sua senha para que a conexão possa encontra o banco.

con = DriverManager.getConnection("jdbc:mysql://localhost:3306/database", "root", "senha");

yfalbino

sempre que precisar mande sua duvida, acredito que todos tentaremos ajudar no que for necessario.

boa sorte no seu projeto

jeffersonm

Boa tarde,

1° vc precisa fazer o download do .jar do mysql

http://dev.mysql.com/downloads/connector/

2° descompacte o .zip e lá dentro vc vai encotrar um .jar

3° cole esse .jar na pasta lib no WEB-INF do seu projeto.

WebContent/WEB-INF/lib

4° Dê um clique com o botão direto sobre o jar e vá em Build path - add build path,

boa sorte :slight_smile:

Criado 21 de fevereiro de 2013
Ultima resposta 21 de fev. de 2013
Respostas 30
Participantes 11