Pessoal , primeiramente boa noite a todos.
vou tentar resumir minha dúvida. Estou fazendo uns exercicios da apostila , aonde eu encontrei um pouco de dificuldade para entender o metodo de ALTERAR e REMOVE (update e delete), o insert foi bastante tranquilo , porem como faço para excluir um contato do banco e alterar no código abaixo e oque devo passar pro parametro ? Segue o código.
contato.java
[code]package br.com.walter.jdbc.modelo;
import java.util.Calendar;
public class Contato {
private long id;
private String nome;
private String email;
private String endereco;
private Calendar dataNascimento;
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 getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public Calendar getDataNascimento() {
return dataNascimento;
}
public void setDataNascimento(Calendar dataNascimento) {
this.dataNascimento = dataNascimento;
}
}[/code]
ContatoDAO.java
[code]package br.com.walter.jdbc.dao;
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 br.com.walter.jdbc.ConnectionFactory;
import br.com.walter.jdbc.modelo.Contato;
public class ContatoDAO {
private Connection connection;
public ContatoDAO() {
this.connection = new ConnectionFactory().getConnection();
}
public void adiciona(Contato contato) {
String sql = "insert into contatos (nome,email,endereco,dataNascimento) VALUES (?,?,?,?)";
try {
// prepared statement para inserção
PreparedStatement stmt = connection.prepareStatement(sql);
// SETA VALORES
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getEmail());
stmt.setString(3, contato.getEndereco());
stmt.setDate(4, new Date(contato.getDataNascimento()
.getTimeInMillis()));
// executa
stmt.execute();
// fecha conexao
stmt.close();
} catch (SQLException e) {
}
}
public List<Contato> getLista() {
try {
List<Contato> contatos = new ArrayList<Contato>();
PreparedStatement stmt = this.connection
.prepareStatement("select * from contatos");
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
// criando o objeto do banco
Contato contato = new Contato();
contato.setId(rs.getLong("id"));
contato.setNome(rs.getString("nome"));
contato.setEmail(rs.getString("email"));
contato.setEndereco(rs.getString("endereco"));
// montando a data
Calendar data = Calendar.getInstance();
data.setTime(rs.getDate("dataNascimento"));
contato.setDataNascimento(data);
// adicionando o contato a lista
contatos.add(contato);
}
rs.close();
stmt.close();
return contatos;
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public void altera(Contato contato) {
String sql = "update contatos set nome=? , email=?, endereco=?, dataNascimento=? where id=?";
try {
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getEmail());
stmt.setString(3, contato.getEndereco());
stmt.setDate(4, new Date(contato.getDataNascimento()
.getTimeInMillis()));
stmt.setLong(5, contato.getId());
// excutar
stmt.execute();
// fechar a conexao
stmt.close();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
public void remove(Contato contato){
try{
PreparedStatement stmt = connection.prepareStatement("delete from contatos where id=?");
stmt.setLong(1, contato.getId());
stmt.execute();
stmt.close();
}catch(SQLException e){
throw new RuntimeException(e);
}
}
}[/code]
TestaInsere.java
[code]package br.com.walter.testes;
import java.util.Calendar;
import br.com.walter.jdbc.dao.ContatoDAO;
import br.com.walter.jdbc.modelo.Contato;
public class TestaInsere {
public static void main(String[] args) {
Contato contato = new Contato();
contato.setNome("Walter Aragão");
contato.setEmail("walteracf@gmail.com");
contato.setEndereco("Rua São José nº 604 Vila São Luis - Dc - RJ");
contato.setDataNascimento(Calendar.getInstance());
//grave essa conexao
ContatoDAO dao = new ContatoDAO();
//método elegante
dao.adiciona(contato);
System.out.println("Gravado !");
//dao.remove(contato);
}
}[/code]
OBS: tentei o dao.remove(contato) , porem nao removeu … eu ja tinha cadastrado esse contato no banco , cadastrei dnv e tentei excluir porem no banco consta 2 cadastros. E no update eu queria mudar só mo e-mail por exemplo , como faço ? E se eu quiser mudar tudo ?
Desde já obrigado !