Duvida update [Resolvido]

Galera o que to fazendo de errado aqui.

[code]public void altera(Contato contato) {

	try {
	String sql = "update TB_CONTATOS set nome=?, telefone=?,endereco=?, dataNascimento=? where nome=?";

		// prepared statement para inserção
		PreparedStatement stmt = (PreparedStatement) connection
				.prepareStatement(sql);

		// seta os valores
		stmt.setString(1, contato.getNome());
		stmt.setString(2, contato.getTelefone());
		stmt.setString(3, contato.getEndereco());
		stmt.setString(4, contato.getDataNascimento());

		// executa
		stmt.executeUpdate();
		stmt.close();
	} catch (Exception e) {
		throw new RuntimeException(e);
		
	}
}[/code]

erro exception

java.sql.SQLException: Pelo menos um parâmetro da instrução corrente não foi inicializado

Você tem 5 parâmetros no SQL e apenas 4 são passados para o PreparedStatement.
Falta o último.

Tens 5 pontos de interrogação no teu sql e apenas estás a fazer set de quatro parâmetros.

[code]public void altera(Contato contato) {

    try {  
    String sql = "update TB_CONTATOS set nome=?, telefone=?,endereco=?, dataNascimento=? where nome=?";  

        // prepared statement para inserção  
        PreparedStatement stmt = (PreparedStatement) connection  
                .prepareStatement(sql);  

        // seta os valores  
        stmt.setString(1, contato.getNome());  
        stmt.setString(2, contato.getTelefone());  
        stmt.setString(3, contato.getEndereco());  
        stmt.setString(4, contato.getDataNascimento());  
        stmt.setString(5, contato.getNome());  

        // executa  
        stmt.executeUpdate();  
        stmt.close();  
    } catch (Exception e) {  
        throw new RuntimeException(e);  
          
    }  
}

[/code]

Tipo isso…

nossa isso nem tinha percebido…vou testar aqui!

[quote=RiQuInHo_$_$]então ficaria assim

[code]String sql = “update TB_CONTATOS set telefone=?,endereco=?, dataNascimento=? where nome=?”;[code][/quote]Está na mesma ordem dos setParameters?

[quote=Hebert Coelho][quote=RiQuInHo_$_$]então ficaria assim

[code]String sql = “update TB_CONTATOS set telefone=?,endereco=?, dataNascimento=? where nome=?”;[code][/quote]Está na mesma ordem dos setParameters?[/quote]

sim esta sim.

[quote=RiQuInHo_$$][quote=Hebert Coelho][quote=RiQuInHo$_$]então ficaria assim

[code]String sql = “update TB_CONTATOS set telefone=?,endereco=?, dataNascimento=? where nome=?”;[code][/quote]Está na mesma ordem dos setParameters?[/quote]

sim esta sim.[/quote]E funcionou?

sim funcionou agora valeu, nossa que coisa minima…valeu!