JDBC - Erro ao tentar conexão

4 respostas
T

Fala galera!
Tô com um pequeno problema aqui:
Criei um package contendo uma classe A que utilizo para conectar ao banco de dados. A mesma possui um método que retorna um objeto do tipo Connection, que desejo instanciar na classe B. Até aí tudo bem, porém, quando tento criar um Statement utilizando a conexão gerada na classe A, é retornado uma NullPointerException.
É mais ou menos assim:

Classe A:

...
  public Connection conexao(){
      return conexaoGerada;
  }

e na Classe B

...
   Connection conn = classeConexao.conexao();
   Statement stmt = conn.createStatement();

Mas quando compilar, é retornado o erro java.lang.NullPointerException.

Será que alguém já passou por isso? Poderiam me ajudar.
Desde já agradeço.
Vinicius

4 Respostas

thiagorani

Voce atribui a conexao para o atributo conexaoGerada?

Ela deve estar com o valor null!

thiagorani

Esse é um exemplo de conexao com o Oracle:

conexaoGerada= DriverManager.getConnection("jdbc:oracle:thin:@"
+ strServer + ":1521:" + strDatabase, strUsuario, strSenha);

Voce fez isso na classe A?

T

Fala Thiago,
fiz sim…inclusive quando tento criar um Statement diretamente na classe A, consigo normalmente.
Porém, quando tento instanciar um Statement na classe B, ocorre a exceção.
Exemplo:

import br.com.Toti.classeA;

appA = new classeA;

Connection conn = appA.conexao();

sendo que na classe A está:

public Connection conexao(){ return conexaoGerada; } [/code]

R

Olá Toti…

eu fiz aqui uma classe para conexão ao banco de dados para ver se acontecia o mesmo erro, você sabe me dizer se esta carregando o Driver corretamente ? talvez esta retornando uma exceção na hora de carregar o Driver (ClassNotFoundException) entao acaba retorna um Connection = null

bem esta aí o código que fiz (Utilizando MySQL):

import java.sql.*;

public class ConexaoBD {
	
	public Connection conexao(){
		Connection conexaoBD = null;
		
		try {
			Class.forName("org.gjt.mm.mysql.Driver");
			
			conexaoBD = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/banco");
		}
		catch (ClassNotFoundException notFoundEx) {
			System.err.println("Driver JDBC/ODBC não pode ser carregado.");
			notFoundEx.printStackTrace();
		}
		catch (SQLException sqlEx) {
			System.err.println("Erro ao conectar no Banco de Dados.");
			sqlEx.printStackTrace();
		}
		
		return conexaoBD;
	}
}
import ConexaoBD;
import java.sql.*;

public class UtilizaConexaoBD {
	
	private Connection conexao;
	private ConexaoBD  conexaoBD;
	private Statement  statement;
	private ResultSet  resultSet;
	 
	public UtilizaConexaoBD() {
		conexaoBD = new ConexaoBD();
		conexao   = conexaoBD.conexao();
		
		try {
			statement = conexao.createStatement();
			resultSet = statement.executeQuery("SELECT * FROM cliente");
			
			resultSet.first();
			System.out.println(resultSet.getString(1));
		}
		catch (SQLException sqlEx) {
			System.out.println("Erro ao buscar dados no Banco.");
			sqlEx.printStackTrace();
		}
	}
	
	public static void main(String args[]) {
		UtilizaConexaoBD utilizaConexaoBD = new UtilizaConexaoBD();
	}
}

até mais, Thiago.

Criado 13 de novembro de 2003
Ultima resposta 16 de nov. de 2003
Respostas 4
Participantes 3