Estou refazendo os exercícios que aprendi no curso da Caelum sozinho e encontrei um problema.
A Stack Trace me retorna o seguinte erro:
Exception in thread "main" java.lang.NullPointerException
at br.com.caelum.jdbc.dao.UsuarioDao.alteraUsuario(UsuarioDao.java:87)
at br.com.caelum.jdbc.teste.TestaAltera.main(TestaAltera.java:21)
Pesquisei aqui no fórum e achei coisas semelhantes, mas nenhum resolveu meu problema.
Eis que o código de alterar os dados usuário:
public class TestaAltera {
public static void main(String[] args) {
Usuario usuario = new Usuario();
usuario.setNickname("Usuario001");
usuario.setPass("12345679");
usuario.setName("Usuario da Silva Santos");
usuario.setMail("usuario@java.com");
usuario.setAdress("Rua dos Usuarios, 42");
usuario.setBirth(Calendar.getInstance());
UsuarioDao dao = new UsuarioDao();
dao.alteraUsuario(usuario); //Linha 21 onde a Stack Trace manda o Erro
System.out.println("Gravado!");
}
}
E o método para alterar:
public void alteraUsuario(Usuario usuario){
String sql = "update users set nickname=?, name=?, mail=?, " +
"adress=?, birth=? where id=?";
try{
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, usuario.getNickname());
stmt.setString(2, usuario.getPass());
stmt.setString(3, usuario.getName());
stmt.setString(4, usuario.getMail());
stmt.setString(5, usuario.getAdress());
stmt.setDate(6, new Date(usuario.getBirth().getTimeInMillis()));
stmt.setLong(7, usuario.getId()); //Linha 87 na qual a Stack Trace emite o Erro
stmt.execute();
stmt.close();
}
catch(SQLException e){
throw new RuntimeException(e);
}
}
Vocês podem me ajudar? Desde já, muito obrigado.