Problemas com exercicios da caelum JDBC {[Urgente]}

2 respostas
M

pessoal do fazendo os exercicios propostos na apostila da caelum só que ta dando um monte de erro nas duas primeiras classes a connection factory e a testaConexao ta ok
mas já na classes contatodao e testeInsere da muitos erros

esses sao os erros que aparecem na teste Insere

Exception in thread main java.lang.NullPointerException

at br.com.caelum.jdbc.Dao.ContatoDao.adiciona(ContatoDao.java:30)

at br.com.caelum.jdbc.Teste.TesteInsere.main(TesteInsere.java:28)

e os erros aparecem nao contatoDao

vou colocar todas as quatro classes

package br.com.teste;

   import java.sql.Connection;  
   import java.sql.DriverManager;  
   import java.sql.SQLException;  
  
  public class ConnectionFactory {  
     public static Connection getConnection() throws SQLException {  
          try {  
           Class.forName("com.mysql.jdbc.Driver");  
             return DriverManager.getConnection("jdbc:mysql://localhost/fj21","jeffer","756210");  
   
         } catch (ClassNotFoundException e) {  
             throw new SQLException(e.getMessage());  
         }  
     }  
 }

essa ta ok

package br.com.caelum.jdbc.Teste;

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

import br.com.teste.ConnectionFactory;
 public class TestaConexao {  
   
     public static void main(String[] args)throws SQLException {  
         try{  
         ConnectionFactory connection = new ConnectionFactory();  
         Connection conexao = connection.getConnection();  
          System.out.println("Conectou!");  
          }catch(SQLException e ){  
             System.out.println("Erro: "+ e.getLocalizedMessage());  
           }  
             }  
  
     }

essa tbm so coloquei para desencargo de conciençia

package br.com.caelum.jdbc.Dao;
import java.sql.Connection;
import java.sql.SQLException;
import br.com.caelum.Modelo.Contato;
import br.com.teste.ConnectionFactory;
import com.mysql.jdbc.PreparedStatement; 
import java.sql.Date; 
public class ContatoDao {
	
	private Connection connection;
	
	public ContatoDao() throws SQLException {
		this.connection = new ConnectionFactory().getConnection();
	}

	
	 public void adiciona(Contato contato ){
		 String sql = "insert into contatos (nome,email,endereco,dataNascimento)values(?,?,?,?)";
	
	 try{
		 //prepared statement para inserção	 
         PreparedStatement stmt = (PreparedStatement) connection.prepareStatement(sql);
         
		 // seta os valores
		 stmt.setString(1,contato.getNome());
		 stmt.setString(2,contato.getEmail());
		 stmt.setString(3,contato.getEndereco());
		 stmt.setDate(4, new Date(contato.getDataNascimento().getTimeInMillis()));
	 	 
		 stmt.execute();
		 stmt.close();
	 }catch(SQLException e){
	 throw new RuntimeException(e);
	
 }
	
}
}

essa é apoblematica

package br.com.caelum.jdbc.Teste;

import java.sql.SQLException;
import java.util.Calendar;
import br.com.caelum.Modelo.Contato;
import br.com.caelum.jdbc.Dao.ContatoDao;


public class TesteInsere {


	public static void main(String[] args) throws SQLException {
	
		
		//pronto para gravar 
		Contato contato =  new Contato();
		contato.setNome("Jefferson");
		contato.setEmail("[email removido]");
		contato.setEndereco("rua zabovari chereder");
		contato.setDataNascimento(Calendar.getInstance());
		
		// grave a conexao 		
		ContatoDao dao = new ContatoDao();
		
		// metodo elegante
		dao.adiciona(contato);
		System.out.println("Gravado !");	        
	}
}

e essa são as duas que ta dando erro

se alguém puder me ajudar fiko grato

2 Respostas

Ev3rton

Olá,

O problema está no PreparedStatement da classe DAO, você está usando o do pacote errado, altere o import:
com.mysql.jdbc.PreparedStatement;

Para:
import java.sql.PreparedStatement;

E depois remova o casting no PreparedStatement, deixando assim:

PreparedStatement stmt = connection.prepareStatement(sql);

Tome cuidado com os imports automáticos…

[]'s

M

olá Ev3rton cara fiz desse jeito que vc me falou só que o errro ainda persiste

a mensagem de erro e esta

Exception in thread main java.lang.NullPointerException

at br.com.caelum.jdbc.Dao.ContatoDao.adiciona(ContatoDao.java:30)

at br.com.caelum.jdbc.Teste.TesteInsere.main(TesteInsere.java:28)

já fiz de tudo mas nao tem jeito se puder ajudar

Criado 12 de fevereiro de 2011
Ultima resposta 13 de fev. de 2011
Respostas 2
Participantes 2