To tentando fazer um UPDATE, mas da erro;
Meu BD:
Os dados contidos nele (os dados que quero dar update)
Minha classe ContatoDao
package repositorio;
import java.sql.*;
import java.util.*;
import javax.swing.JOptionPane;
import com.mysql.jdbc.PreparedStatement;
import negocio.Contato;
public class ContatoDao {
private Connection con = null;
public ContatoDao() {
this.con = new ConexaoFactory().getConnection();
}
public void adiciona(Contato contato) {
String sql = "INSERT INTO cliente(nome,email,idade) VALUES(?,?,?)";
try {
PreparedStatement stmt = (PreparedStatement) con.prepareStatement(sql);
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getEmail());
stmt.setInt(3, contato.getIdade());
stmt.execute();
stmt.close();
JOptionPane.showMessageDialog(null, "Gravado com sucesso!");
}catch (SQLException e) {
//throw new RuntimeException(e);
JOptionPane.showMessageDialog(null, "Erro ao tentar gravar no BD"+e);
}
}//Fim adiciona
//Método que ta dando erro!!@
public void atualiza(Contato contato) {
String sql = “UPDATE cliente SET nome = ?,email = ?,idade = ? WHERE id = ?”;
try {
PreparedStatement stmt = (PreparedStatement) con.prepareStatement(sql);
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getEmail());
stmt.setInt(3, contato.getIdade());
stmt.executeUpdate();
stmt.close();
JOptionPane.showMessageDialog(null, "Atualizado com sucesso!");
}catch (SQLException e) {
//throw new RuntimeException(e);
JOptionPane.showMessageDialog(null, "Erro ao tentar atualizar no BD"+e);
}
}//Fim atualiza
public List<Contato> getLista() {
List<Contato> contatos = new ArrayList<Contato>();
String sql = "SELECT * FROM cliente";
try {
PreparedStatement stmt = (PreparedStatement) con.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
while(rs.next()) {
Contato contato = new Contato();
contato.setNome(rs.getString("nome"));
contato.setEmail(rs.getString("email"));
contato.setIdade(rs.getInt("idade"));
contatos.add(contato);
}
rs.close();
stmt.close();
//return contatos;
}catch(SQLException e) {
//JOptionPane.showMessageDialog(null, "Erro ao dar Select o BD"+e);
throw new RuntimeException(e);
}
return contatos;
}
}//Fim ContatoDao
MINHA CLASSE TESTE (MAIN):
package negocio;
import repositorio.ContatoDao;
public class ContatoTeste {
static ContatoDao dao = new ContatoDao();
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String nome = "Glauber";
String email = "doodoh2010@hotmail.com";
int idade = 22;
Contato contato = new Contato();
contato.setNome(nome);
contato.setEmail(email);
contato.setIdade(idade);
dao.atualiza(contato);
}
}
Print do erro:



