Erro de cadastrar as informações no banco

2 respostas
C

Caros, estou com um problema e desejo uma ajuda. Fiz uma conexão com o banco MySQL e ele me retorna direitinho a conexão. Porém, quando faço a rotina de cadastro me retorna o erro:

[i]Exception in thread "main" java.lang.NullPointerException
	at Cadastrar.main(Cadastrar.java:22)[/i]

Meu código é:

Classe de conexão:

package Conexao;

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

public class ConexaoBD {
	
	
	public ConexaoBD() throws ClassNotFoundException, SQLException{
		
		Class.forName("com.mysql.jdbc.Driver");
		DriverManager.getConnection("jdbc:mysql://localhost:3306/teste", "root", "123456");
	}

Classe de cadastro:

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import Conexao.ConexaoBD;


public class Cadastrar {

	/**
	 * @param args
	 * @throws SQLException 
	 * @throws ClassNotFoundException 
	 */
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		// TODO Auto-generated method stub

		ConexaoBD con = new ConexaoBD();
		Connection co = null;
			
		String sql = "insert into pessoa values ('paulo', '123')"; 
		PreparedStatement smt =  co.prepareStatement(sql);
		smt.executeUpdate();
			}}

Então, não estou entendo, pois tenho outros código aqui que funcionavam perfeitamente. Pode ser problema com o eclipse ou com o driver?

Eclipse
Eclipse Java EE IDE for Web Developers.

Version: Juno Service Release 1
Build id: 20120920-0800

Driver:

C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\lib\mysql-connector-java-5.1.17-bin.jar

Quem puder dar uma força eu agradeço.

2 Respostas

thiago_dias

O problema é que você tentou utilizar uma variável nula.

Connection co = null; 

...

PreparedStatement smt = co.prepareStatement(sql); //aqui está o problema... co está nula

Não entendi muito bem a classe ConexaoBD, mas tente fazer com que ela retorne uma Connection e então atribuí-la a “co”.

A apostila FJ-21 da Caelum aborda esses assuntos de acesso a banco de dados… baixe, é gratuita.

Abrçs

freakazoid

Ola carioca2406, o que o thiagoClaudino disse esta correto. Se a conexão for nula não conseguiremos ir longe rs
Se fosse algum problema de driver no stacktrace retornaria:

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

Outro ponto é que a sua classe de conexão deve retornar um objeto do tipo Connection. Da uma olhada nas apostilas da Caelum.

Abs!

Criado 3 de março de 2013
Ultima resposta 4 de mar. de 2013
Respostas 2
Participantes 3