Galera, meu erro é o seguinte.
Eu tenho um tabela chamada “clientes”, nela eu possuo o "id, nome, telefone, e endereço.
o ID é AUTO_INCREMENT
Eu fiz a classe do java, tudo certinho, de acordo com a apostila fj21
aqui vai o código
package engenharia_de_software.Cliente;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import engenharia_de_software.ConnectionFactory;
public class ClienteDAO {
private Connection con;
public ClienteDAO() {
this.con = new ConnectionFactory().getConnection();
}
//////////////////////////////////////MÉTODO PARA ADICIONAR//////////////////////////////
public void adiciona(Cliente cliente) {
String sql = "insert into clientes (nome,telefone,endereco) values(?,?,?)";
try {
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1, cliente.getNome());
stmt.setString(2, cliente.getTelefone());
stmt.setString(3, cliente.getEndereco());
stmt.execute();
stmt.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
//////////////////////////////////////MÉTODO PARA MOSTRAR//////////////////////////////
public List<Cliente> getList() {
try {
PreparedStatement stmt = this.con
.prepareStatement("select*from clientes");
ResultSet rs = stmt.executeQuery();
List<Cliente> clientes = new ArrayList<Cliente>();
while (rs.next()) {
Cliente cliente = new Cliente();
cliente.setId(rs.getLong("id"));
cliente.setNome(rs.getString("nome"));
cliente.setTelefone(rs.getString("telefone"));
cliente.setEndereco(rs.getString("endereco"));
clientes.add(cliente);
}
rs.close();
stmt.close();
return clientes;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
//////////////////////////////////////MÉTODO PARA REMOVER//////////////////////////////
public void remove(Cliente cliente){
try {
PreparedStatement stmt = con.prepareStatement("delete from clientes where id=?");
stmt.setLong(1, cliente.getId());
stmt.execute();
stmt.close();
} catch (SQLException e) {
throw new RuntimeException();
}
}
//////////////////////////////////////MÉTODO PARA ALTERAR//////////////////////////////
public void altera(Cliente cliente){
String sql ="update clientes set nome=?, telefone=?, endereco=? where id=?";
try{
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setString(1, cliente.getNome());
stmt.setString(2, cliente.getTelefone());
stmt.setString(3, cliente.getEndereco());
stmt.setLong(5, cliente.getId());
stmt.execute();
stmt.close();
}catch (SQLException e){
throw new RuntimeException();
}
}
}
aqui a classe “Cliente”
[code]package engenharia_de_software.Cliente;
public class Cliente {
private String nome, endereco, telefone;
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
}
[/code]
Aqui, a classe onde eu rodo o programa.
[code]package engenharia_de_software;
import engenharia_de_software.Cliente.Cliente;
import engenharia_de_software.Cliente.ClienteDAO;
import engenharia_de_software.Cliente.MetodosClient;
public class Principal {
public static void main (String args[]){
Cliente c = new Cliente();
ClienteDAO dao = new ClienteDAO();
c.setNome("Eliezer");
c.setEndereco("SHA CJ 4 CH 72 LOTE R");
c.setTelefone("3401-1956");
dao.adiciona(c);
MetodosClient m = new MetodosClient();
m.listarProdutos();
dao.remove(c);
m.listarProdutos();
}
}[/code]
o erro é o seguinte
[quote]Exception in thread “main” java.lang.NullPointerException
at engenharia_de_software.Cliente.ClienteDAO.remove(ClienteDAO.java:69)
at engenharia_de_software.Principal.main(Principal.java:23)
[/quote]
Como podem ver, ele dá no ID do meu objeto.
Gostaria que a galera me ajudassem a resolver o problema.
Valeu
Abraço!