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
atbr.com.alan.jdbc.dao.ContatoDAO.adiciona(ContatoDAO.java:23)
atbr.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);
}
}
}