Problema com utilização de JDBC

Vc esqueçeu de por o driver do mysql no seu classpath.
Geralmente esse driver vem no formato de um arquivo com extensão jar.
Veja esse tutorial para compreende melhor o classpath

Errado…vc não precisa criar uma variavel só para o driver do mysql, apenas acrescente o valor da variavel no final da variavel CLASSPATH (se não tiver crie)

Quase

 CLASSPATH=.;%JAVA_HOME%;C:\Developer Files\Banco de Dados\MySQL Connector Java 3.1.1.6\mysql-connector-java-3.1.6\mysql-connector-java-3.1.6-bin.jar 

Agora testa

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

Significa que a classe não foi encontrada.

Coloque o seu catch assim:

} catch (ClassNotFoundException e) { System.out.println("Classnotfound!"); System.out.println("MSG : " + e.getMessage()); e.printStackTrace();

E ai compare essa mensagem:

Classnotfound!
MSG : com.mysql.jdbc.Driver
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
(…)

E ai, cade o com.mysql.jdbc.Driver ?

Olá amigo!,

Cara seguinte todo mundo erra quando trabalha com JDBC…

Seguinte vc está expecificando o “.jar” do mysql fora de acesso ao seu projeto… coloque esse jar num local “acessivel” para o seu projeto… de preferivel na raiz.

Tire o exemplo que ele esta procurando:

com.mysql.jdbc.Driver 

ou seja:

“Raiz”/com/mysql/jdbc/Driver

e não C:\arquivos de programas\bla bla bla…

:wink:

Eu estou com o mesmíssimo problema…
O classpath ja ta arrumadinho… o estranho é q tava funcionando e agora, do nada, nao conecta de jeito nenhum!
Nao entendi essa última parte… o teria q fazer exatamente?

:slight_smile: Meus companheiros . . . já naum sei mas o que fazer e algumas soluções que foram sugeridas naum entendei perfeitamente

Minha situação atual é a seguinte:

CLASSPATH = .;%JAVA_HOME%;C:\Arquivos de programas\Java\jdk1.6.0_02\mysql-connector-java-5.1.2-beta-bin.jar;F:\Meus documentos\Sistemas de Informação\4ºSemestre\Linguagem de Programação II

JAVA_HOME = C:\Arquivos de programas\Java\jdk1.6.0_02

Path = %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;;C:\php;C:\Arquivos de programas\MySQL\MySQL Server 5.0\bin;C:\Arquivos de programas\Microsoft SQL Server\90\Tools\binn;%JAVA_HOME%\bin

Tenho o seguinte conector/J mysql-connector-java-5.1.2-beta-bin.jar que está localizado em C:\Arquivos de programas\Java\jdk1.6.0_02

Estou trabalhando em um projeto de nome SisExemplo que cria um pacote package sisexemplo;.

Certo pessoal?Vou por o fonte da classe que estou usando pra fazer a conexão tb.

package sisexemplo;
import java.sql.*;

public class MinhaConexaoJdbc {
private Connection con = null;
private String hostName = null;
private String userName = null;
private String password = null;
private String url = null;
private String jdbcDriver = null;
private String dataBaseName = null;
private String dataBasePrefix = null;
private String dabaBasePort = null;

public MinhaConexaoJdbc() {
    super();
    hostName = "localhost";
    userName = null;
    password = null;    
    jdbcDriver = "com.mysql.jdbc.Driver";
    dataBaseName = "alpha";
    dataBasePrefix = "jdbc:mysql://";
    dabaBasePort = "3306";

    url = dataBasePrefix + hostName + ":"+dabaBasePort+"/" + dataBaseName + "/";
}

public Connection getConectar() {
    try {
        if (con == null) {
            Class.forName(jdbcDriver);
            con = DriverManager.getConnection(url, userName, password);
        } else if (con.isClosed()) {
            con = null;
            return getConectar();
        }
    } catch (ClassNotFoundException e) {
        System.out.println("Classnotfound!");
        System.out.println("MSG : " + e.getMessage());
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return con;
}

}

Utilizo a classe acima no click de um botão, da seguinte forma . . .
private void btnConexaoActionPerformed(java.awt.event.ActionEvent evt) {
MinhaConexaoJdbc conexao = new MinhaConexaoJdbc();
Connection c = conexao.getConectar();
}

Por favor, alguém dê uma analizada e me de um retorno, mesmo se for pra dizer que naum sabe o que está errado.

:slight_smile: Meus companheiros . . . já naum sei mas o que fazer e algumas soluções que foram sugeridas naum entendei perfeitamente

Minha situação atual é a seguinte:

CLASSPATH = .;%JAVA_HOME%;C:\Arquivos de programas\Java\jdk1.6.0_02\mysql-connector-java-5.1.2-beta-bin.jar;F:\Meus documentos\Sistemas de Informação\4ºSemestre\Linguagem de Programação II

JAVA_HOME = C:\Arquivos de programas\Java\jdk1.6.0_02

Path = %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;;C:\php;C:\Arquivos de programas\MySQL\MySQL Server 5.0\bin;C:\Arquivos de programas\Microsoft SQL Server\90\Tools\binn;%JAVA_HOME%\bin

Tenho o seguinte conector/J mysql-connector-java-5.1.2-beta-bin.jar que está localizado em C:\Arquivos de programas\Java\jdk1.6.0_02

Estou trabalhando em um projeto de nome SisExemplo que cria um pacote package sisexemplo;.

Certo pessoal?Vou por o fonte da classe que estou usando pra fazer a conexão tb.

package sisexemplo;
import java.sql.*;

public class MinhaConexaoJdbc {
private Connection con = null;
private String hostName = null;
private String userName = null;
private String password = null;
private String url = null;
private String jdbcDriver = null;
private String dataBaseName = null;
private String dataBasePrefix = null;
private String dabaBasePort = null;

public MinhaConexaoJdbc() {
    super();
    hostName = "localhost";
    userName = null;
    password = null;    
    jdbcDriver = "com.mysql.jdbc.Driver";
    dataBaseName = "alpha";
    dataBasePrefix = "jdbc:mysql://";
    dabaBasePort = "3306";

    url = dataBasePrefix + hostName + ":"+dabaBasePort+"/" + dataBaseName + "/";
}

public Connection getConectar() {
    try {
        if (con == null) {
            Class.forName(jdbcDriver);
            con = DriverManager.getConnection(url, userName, password);
        } else if (con.isClosed()) {
            con = null;
            return getConectar();
        }
    } catch (ClassNotFoundException e) {
        System.out.println("Classnotfound!");
        System.out.println("MSG : " + e.getMessage());
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    return con;
}

}

Utilizo a classe acima no click de um botão, da seguinte forma . . .
private void btnConexaoActionPerformed(java.awt.event.ActionEvent evt) {
MinhaConexaoJdbc conexao = new MinhaConexaoJdbc();
Connection c = conexao.getConectar();
}

Por favor, alguém dê uma analizada e me de um retorno, mesmo se for pra dizer que naum sabe o que está errado.

tb estou tendo este problema
se alguém puder nos ajudar né
:slight_smile:

Caros,

Estou com o mesmo problema só que no meu caso eu to com um problema no jsp, coloquei o mysql connector no lib do tomcat, no ext do jre e criei a variavel class_path como segue:

.;C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\connector.jar

sendo que eu renomiei mysql-connector… para connector.jar mesmo assim na pagina de conexao da um erro:

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

O que pode ser feito?

O primeiro passo para efetuar a conexão Java + MySQL é baixar o driver que fará a ponte entre a linguagem Java e o banco de dados MySQL. A versão mais recente deste driver é chamada de MySQL Connector/J e pode ser baixada no endereço http://dev.mysql.com/downloads. Durante a autoria deste artigo, o nome do arquivo a ser baixado era semelhante à mysql-connector-java-3.1.12.zip.

Após baixar o driver, é hora de configurá-lo em seu sistema. A configuração é bem simples e em alguns casos envolve apenas descompactar e mover o arquivo para um determinado diretório. As instruções a seguir se aplicam ao Windows, porém, pouca coisa muda na instalação em Linux.

Passo 1: Baixe o driver e descompacte-o em um diretório de sua preferência;

Passo 2: Se for usar o driver em aplicativos Java (e não em aplicações web), adicione o
jar “mysql-connector-java-3.1.12-bin.jar” no CLASSPATH de seu sistema. Se você colocou o arquivo em C:\java, a entrada seguinte deverá ser adicionada à variável CLASSPATH do sistema:

C:\java\mysql-connector-java-3.1.12-bin.jar

Passo 3: Teste se o driver pode ser carregado com sucesso a partir de um aplicativo. Veja o código que pode ser usado para esta finalidade:

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

public class CarregarDriver{
public static void main(String[] args) {
try {
Class.forName(“com.mysql.jdbc.Driver”).newInstance();
System.out.println(“Driver carregado com sucesso!”);
}
catch (Exception ex) {
System.out.println(“Driver nao pode ser carregado!”);
}
}
}

Dica:
Se o driver não puder ser carregado através do CLASSPATH experimente copiar o arquivo mysql-connector-java-3.1.12-bin.jar para o diretório C:\java\jre\lib\ext (o seu deve ser bem parecido). Em nossos testes esta foi a forma mais adequada de carregar o driver.

A exceção ClassNotFoundException

Um dos problemas mais comuns encontrados por usuários menos experientes, é o tratamento da exceção:

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

Esta exceção ocorre quando o driver não pode ser localizado. Revise as dicas sobre como disponibilizá-lo.

Muito obrigado mano, deu certo, Deus te abençoe!

Num tem de que brother!!! :-o

Me foi muito útil as respostas às perguntas deste forum :wink: …Muito bom mesmo.

Olá! E se eu for utilizar o conector para aplicacoes web, o que é o meu caso, o que deve ser diferente nos passos listados?

Obrigada :smiley:

na utilização de um JDBC, pq este código não dá certo:

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

public class JDBCExemplo {

public static void main(String[] args) {
	
	try {
		Class.forName("com.mysql.jdbc.Driver");
		Connection con =
			DriverManager.getConnection(
					"jdbc:mysql://localhost/BANCO_DE_DADOS?user=root&password=root");
		System.out.println("Conectado!");
		con.close();
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	} catch (SQLException e) {
		e.printStackTrace();
	}
}

}

o erro devolvido pelo console é:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at JDBCExemplo.main(JDBCExemplo.java:10)

como resolver?

coloquei sim, na Variáveis do Sistema (dentro do Variáveis de ambinente no XP). ficou assim:

Nome da variável: mysql connector
Valor da variável: C:\Developer Files\Banco de Dados\MySQL Connector Java 3.1.1.6\mysql-connector-java-3.1.6\mysql-connector-java-3.1.6-bin.jar

certo ou errado?

ver se eu entendi:

na variável CLASSPATH adicionar mysqlconnector = valor;

ficou assim:

CLASSPATH=.;%JAVA_HOME%;mysql connector=C:\Developer Files\Banco de Dados\MySQL Connector Java 3.1.1.6\mysql-connector-java-3.1.6\mysql-connector-java-3.1.6-bin.jar

Certo ou errado?

Erro:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at JDBCExemplo.main(JDBCExemplo.java:10)

to desconfiando da parte desse código:

DriverManager.getConnection(
“jdbc:mysql://localhost/BANCO_DE_DADOS?user=root&password=root”);

localhost? BANCO_DE_DADOS? não teria que ter mysql e o seu endereço?