Erro - java.lang.NullPointerException

7 respostas
C

Boa tarde galera,

estou com um erro chatinho aqui em um exercício que estou fazendo, gostaria da ajuda de vocês, se não me engano acho q é algum objeto que não inicializei, estou achando que é o PreparedSta...
vou mandar as classes pra ajudarem...

Metodo incluir

public class CarroDao {
    
    private Connection con; 
    
    public CarroDao(){
        this.con = new Conexao().abreConexao();
    }
   
    public void inserir(CarroBean carro){ 
        String sql = "INSERT INTO carro(placa, cor, descricao)VALUES(?,?,?)"; 
        try {            
            PreparedStatement ps = con.prepareStatement(sql);
            ps.setString(1, carro.getPlaca());
            ps.setString(2, carro.getCor());
            ps.setString(3, carro.getDescricao());
            ps.execute();
            ps.close();
            
        } catch (SQLException e) {
             throw new RuntimeException(e);
             
        } finally{
            Conexao.fechaConexao(con);
        }
    }
Classe Conexão
public class Conexao {
    
    public Connection abreConexao(){
        Connection con = null;
        try {
            Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
            String url = "jdbc:derby://localhost:1527/estacionamento";
            String user = "root";
            String pass = "root";
            con = DriverManager.getConnection(url,user,pass);     
        } catch (SQLException e) {
            System.out.println(e.getMessage());
        } catch (ClassNotFoundException e){
            System.out.println(e.getMessage());
        } catch (Exception e){
            System.out.println(e.getMessage());
        }
        System.out.println("Conexao aberta.");
        return con;   
    }
Classe main
public class Estacionamento {

    public static void main(String[] args) {
        
        CarroBean bean = new CarroBean();       
        bean.setPlaca("JKK2516");
        bean.setCor("Azul");
        bean.setDescricao("Carro reserva");
        
        CarroDao dao = new CarroDao();
        dao.inserir(bean);
        System.out.println("Gravado com sucesso!");       
    }
    
}
Este é o erro no console...
run:
org.apache.derby.jdbc.ClientDriver
Conexao aberta.
null
Conexao fechada.
Exception in thread "main" java.lang.NullPointerException
	at br.com.dao.CarroDao.inserir(CarroDao.java:23)
	at Estacionamento.main(Estacionamento.java:15)
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

7 Respostas

Rodrigo_Sasaki

E o que tem na linha 23 da classe CarroDao?

C

Sim nessa linha é o PreparedSta…
mas onde eu inicializo ele…? essa é minha dúvida…

Rodrigo_Sasaki

Seria bem melhor se fosse mais específico. Na linha 23 algo está nulo, eu não consigo dizer o que é se não sei qual é a linha

C

Foi mals…é a linha 12 do método incluir…

C

Visxiii…
Na linha 11 do metodo incluir, dei um System.out.print("Conexao ->>> "+con); me retornou null…
acho q por isso não esta dando certo…

Rodrigo_Sasaki

Então sua variável con que está nula.

O seu método abreConexao está lançando alguma exceção e retornando null

Você imprime mensagens no console, o que ele te diz? Você já tentou analisar a execução com um depurador? Provavelmente o erro ocorre na chamada a DriverManager.getConnection

C

Rodrigo Sasaki:
Então sua variável con que está nula.

O seu método abreConexao está lançando alguma exceção e retornando null

Você imprime mensagens no console, o que ele te diz? Você já tentou analisar a execução com um depurador? Provavelmente o erro ocorre na chamada a DriverManager.getConnection

Eaw…fui tentar ver pq estava vindo null…e descobri q ta não ta achando o class.forName…eu acho…rs
pq lançou o catch(ClassNotFoundException e){ status = "ClassNotFound ";

agora vou caçar isso…rs

Criado 23 de outubro de 2013
Ultima resposta 23 de out. de 2013
Respostas 7
Participantes 2