ERRO - Conexao JDBC

10 respostas
soulhave

[b]"O driver é um jar (se for um driver puro java), e você deve te-lo em seu classpath, caso contrário não conseguirá utilizá-lo. Se preferir, coloque o driver no classpath na hora de chamar o java, atraves da linha de comando, por exemplo:

1 java -classpath diretorio/meudriver.jar MinhaClasse"[/b]

Ola Galera, estou acompanhando o tutorial do site para fazer uma conexao com o banco de dados. Porem nao entendi muito bem a ultima linha…

O que eu fiz. eu peguei o dbriver salvei em uma pasta…
(D:\Pessoal\Java\mysql-connector-java-5.0.5)

ao inves de dar o comando "java -classpath … " adicionei ele direto nas variaveis de ambiente do windows.
da seguinte forma…

Nome da variavel= Classpath
Valor da variavel= D:\Pessoal\Java\mysql-connector-java-5.0.5\mysql-connector-java-5.0.5-bin.jar

So que nao se se esta certo desta forma. Tentei fazer a conexao com o banco… Ou melhor fazer o carregamento do driver.
E esta dando erro.

Class.forname(“com.mysql.jdbc.Driver”);

Entao galera nao sei o que fazer se alguem puder me ajudar… Inclusive ate vi um outro forum que achei que poderia me ajudar mas nao ajudou muito…

FORUM=Arquivo Jar na hora de carregar não encontra o org.gjt.mm.mysql.Driver

Aguardo auxilio. Desde ja grato

10 Respostas

Bravox

vc usa alguma ide ?

soulhave

Eu uso Eclipse.

Bravox

faz o seguinte então :

cria um diretório chamado lib no seu projeto copia o drive e cola nesse diretório ai vc seleciona o projeto -> alt + enter -> java build path -> libraries -> addjars -> seleciona o drive e de ok !! pronto o seu drive já está no seu projeto

qualquer coisa estamos ai !!

soulhave

Valeu, pelo menos um erro acho que eu consegui eliminar. Obrigado. Agora estou com outro problema.

package Fontes.Window;
import java.sql.*;
public class Banco extends Janela{
	private static final long serialVersionUID = 1L;
	//Class.forName("com.mysql.jdbc.Driver");
	public Banco(){
	try {
		Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/work?user=root&password=ski69547");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		Statement stm = conn.createStatement();
		ResultSet rs = stm.executeQuery("");
	
	}
	
}

no conn do "Coneection conn = ..." esta dando erro em cima, argumentando que ele nao existe. Porque esta dando esta mensagem?

gp7junior
soulhave:
Valeu, pelo menos um erro acho que eu consegui eliminar. Obrigado. Agora estou com outro problema.
package Fontes.Window;
import java.sql.*;
public class Banco extends Janela{
	private static final long serialVersionUID = 1L;
	//Class.forName("com.mysql.jdbc.Driver");
	public Banco(){
	try {
		Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/work?user=root&password=ski69547");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		Statement stm = conn.createStatement();
		ResultSet rs = stm.executeQuery("");
	
	}
	
}

no conn do "Coneection conn = ..." esta dando erro em cima, argumentando que ele nao existe. Porque esta dando esta mensagem?

voce configurou o jdbc? comigo funcionava,
deve ser questao tambem de importação de pacotes.

Bravox

Esse erro está relacionado com variáveis locais e variáveis globais de uma pesquisada sobre esse assunto , mas resumindo

variáveis globos -> são enxergadas por todos os métodos da classe

variáveis locais -> possui escopo de bloco Ex: pegando um método qualquer

public void mostraEscopo(){
		
		// essa variável possui escopo no metódo todo
		// ou seja todos os blocos que estiver dentro do 
		// método vão enxergar essa variável 
		int v1 = 0; 
		
		while( true ){
			
			//  essa possui escopo no bloco do while 
			// ela não enxerga v1 pq o seu escopo  está no bloco while
			// portanto tudo que estiver no bloco while enxergara ela 
			int v2 = v1;
			
			if( v2 > 0 ){
				
				// e no caso dessa é idêntica a v2  que o seu 
				// escopo e no bloco if e como o if está dentro 
				// do while e dentro do método ela enxerga v1,v2
				// e ai vai 
				int v3 = v2 + v1;
			}
		}
	}

então resolvendo o seu problema , a sua variável conn está sendo criada dentro do bloco try então ela só é vista dentro do bloco com isso ela não poderá ser utilizada se não for no bloco , então vc deve colocar ela como uma variável mais externa no seu método de forma que ela seja enxergada aonde vc for utilizar ela , eu dei uma arrumada no seu código
da uma olhada ai

public class Banco extends Janela{
	
	private static final long serialVersionUID = 1L;
	
	public Banco(){
		
		Connection conn = null;
		try {
			
			Class.forName("com.mysql.jdbc.Driver");
			
			conn = DriverManager.getConnection("jdbc:mysql://localhost/work?user=root&password=ski69547");
		} catch (SQLException e){
			e.printStackTrace();
		}
		Statement stm = conn.createStatement();
		ResultSet rs = stm.executeQuery("");
		
	}
}

precisar é só gritar !!

abraços

Bravox

uma pergunta vcs estão recebendo e-mail de notificação de resposta do forum ?

soulhave

Eu não estou recebendo, mas está configurado para não receber no meu perfil.

Bravox

Então !! resolveu o seu problema ?

soulhave

Opa! Na verdade não, ainda não resolveu. Estive viajando e não deu para mecher hoje é que voltei. Aqui meu programa está dando erro nesta linha. Não entendo porque.

Class.forName(“com.mysql.jdbc.Driver”);

Não sei se é o driver, mas ele está la nas libraries…Carreguei como você falou, mas essa instrução não está funcionado… Onde está sublinhado é onde está ocorrendo o erro.

Abraços

Criado 16 de março de 2007
Ultima resposta 21 de mar. de 2007
Respostas 10
Participantes 3