Boa Tarde implemente o seguinte Dao
package br.com.caelum.com.br;
[code]
package br.com.caelum.com.br;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class ContatoDao {
private Connection con;
public void adciona(Contato contato) throws SQLException {
this.con = ConnectionFactory.getConnection();
String sql = "insert into contatos(nome,email,endereco) values (?,?,?)";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getEmail());
stmt.setString(3, contato.getEndereco());
stmt.execute();
stmt.close();
}
public void altera(Contato contato) throws SQLException {
String sql = "update contatos set nome=?, email=?, endereco=? where id=?";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getEmail());
stmt.setString(3, contato.getEndereco());
stmt.setLong(4, contato.getId());
stmt.execute();
stmt.close();
}
public void remove(Contato contato) throws SQLException {
PreparedStatement stmt = con
.prepareStatement("delete from contatos where id=? ");
stmt.setLong(1, contato.getId());
stmt.execute();
stmt.close();
}[/code]
depois criei o codigo de teste para incluir que funcionou normalmente porem quando tentei alterar com o seguinte codigo:
[code]package br.com.caelum.com.br;
import java.sql.SQLException;
public class TestaAltera {
public static void main(String args[]) throws SQLException{
Contato contato = new Contato();
ContatoDao dao= new ContatoDao();
contato.setEmail(“alterandoemail”);
contato.setEndereco(“enderecoalterado”);
contato.setNome(“nomealterado”);
long par = 1;
contato.setId(par);
dao.altera(contato);
}
}[/code]
recebo a seguinte mensagem de erro:
Exception in thread “main” java.lang.NullPointerException
at br.com.caelum.com.br.ContatoDao.altera(ContatoDao.java:23)
at br.com.caelum.com.br.TestaInsere.main(TestaInsere.java:16)
nao sei porque ele esta dizendo que esta tentando acessar objeto nulo
alguem poderia me ajudar?