Apostila FJ21 Caelum

1 resposta
A

Estou começando em programação Java, e utilizando à apostila FJ21 da Caelum, porém em um exercício da apostila, está sendo apresentado um erro, e já tentei de diversas formas mas não consigo resolver.

Ao que parece ele aponta para a inicialização do PreparedStatement dizendo que o mesmo é nulo.

Exception in thread “main” java.lang.NullPointerException
at br.com.alan.jdbc.dao.ContatoDAO.adiciona(ContatoDAO.java:23)
at br.com.alan.jdbc.teste.TestaInsere.main(TestaInsere.java:20)`


Abaixo à classe ContatoDAO.

package br.com.alan.jdbc.dao;

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

import br.com.alan.jdbc.ConnectionFactory;
import br.com.alan.jdbc.modelo.Contato;

public class ContatoDAO {
    // Conexão com o Banco de Dados
    private Connection connection;
    
    public void ContatoDao() {
    this.connection = new ConnectionFactory().getConnection();
}

public void adiciona(Contato contato) {
    String sql = "insert into contatos " + "(nome, email, endereco, dataNascimento)" + "values (?,?,?,?)";
    
    try {
        //Prepared Statement
        PreparedStatement stmt = connection.prepareStatement(sql);
        
        //Setando valores
        stmt.setString(1, contato.getNome());
        stmt.setString(1, contato.getEmail());
        stmt.setString(3, contato.getEndereco());
        stmt.setDate(4, new java.sql.Date(contato.getDataNascimento().getTimeInMillis()));
        
        //Executa
        stmt.execute();
        stmt.close();
    } catch (SQLException e) {
        throw new RuntimeException(e);
    }
  }
}

1 Resposta

igomes

Da uma olhada nessa linha, at br.com.alan.jdbc.dao.ContatoDAO.adiciona(ContatoDAO.java:23).
Poe um breakpoint, vê os valores das variáveis em tempo de execução, debug e blablabla.

Criado 10 de julho de 2016
Ultima resposta 10 de jul. de 2016
Respostas 1
Participantes 2