Não estou conseguindo alterar um contato no banco

3 respostas
C
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.setNome());
    		   stmt.setString(2, contato.getEmail());
    		   stmt.setString(3, contato.getEndereco());
    		   stmt.setDate(4, new Date(contato.getDataNascimento().getTimeInMillis()));
    		   stmt.setLong(5, contato.getId());
    		   stmt.executeUpdate();
    		   stmt.close();
    	   } catch (SQLException e) {
    		   throw new RuntimeException(e);
    	   }
       }
public class TestaInsere {
	
	 
	public static void main(String[] args) {
		
		//pronto para gravar
		
		Contato contato = new Contato();
		contato.setNome("Allan");
		contato.setEmail("[email removido]");
		contato.setEndereco("R. Januario de Souza 4585 cj34");
		contato.setDataNascimento(Calendar.getInstance());
		
		//grave nessa conexão
		ContatoDAO dao = new ContatoDAO();
		
		//método elegante
		dao.altera(contato);
		
		System.out.println("Gravado!");
					
		}

	}
OBS.: Criei um método altera e não estou conseguindo fazer o update no contato. O que preciso
              mudar no main para funcionar?  Ou não é no main que preciso mudar? Pode ser com dicas
              ou implementações no código. Desde  agradeço pela atenção. No aguardo, obrigado.

3 Respostas

Hebert_Coelho

Contato contato = new Contato(); contato.setNome("Allan"); contato.setEmail("[email removido]"); contato.setEndereco("R. Januario de Souza 4585 cj34"); contato.setDataNascimento(Calendar.getInstance());
Vc não deu setId. Com isso, vai sempre 0.

mauricioadl

tem uma virgula a mais na query sql

A

Seu SQL

String sql = "update contatos set nome=?, email=?, endereco=?, dataNascimento=?, where id=?";

Altere para

String sql = "update contatos set nome=?, email=?, endereco=?, dataNascimento=? where id=?";
Criado 16 de dezembro de 2011
Ultima resposta 16 de dez. de 2011
Respostas 3
Participantes 4