Como fazer update no PreparedStatment

5 respostas
rafaelviny

To tentando fazer um update, mas nao to conseguindo, o insert ja fiz e ta certo mas o update ta dificil

alguem da uma força

obrigado

public void alteraProduto(){
        try {  Connection con = Conexao.abrirConexao();
 
            PreparedStatement psAlteraPro = con.prepareStatement
                    ("update produto set  Nome_Produto = ?, Descricao_Produto = ?, Preco_Custo = ?, Preco_Venda_Vista =?, Preco_Venda_Prazo  where cod_produto = ?");
            

            psAlteraPro.setString(1, nome_pro);
            psAlteraPro.setString(2, descricao);
            psAlteraPro.setDouble(3,preco_custo );
            psAlteraPro.setDouble(4, preco_ven_vista);
            psAlteraPro.setDouble(5, preco_ven_prazo);
            psAlteraPro.setInt(6, codigo);
            
            
             psAlteraPro.executeUpdate();
             JOptionPane.showMessageDialog(null, "Todos os dados foram alterados"+
                     "correta", "Informações alteradas com sucesso!",
                     JOptionPane.INFORMATION_MESSAGE);
        } catch (SQLException e) {
            e.printStackTrace();
            JOptionPane.showMessageDialog(null, "Operação não concluida ", 
                    "Verifique o Sistema", JOptionPane.ERROR_MESSAGE);
        }
       
   }
}

5 Respostas

diogoprosoft

try { ps = con.prepareStatement( "UPDATE alunos SET nome = ?, email = ? WHERE codigo = ?" ); ps.setString(1, alunos.getNome()); ps.setString(2, alunos.getEmail()); ps.setInt(3, alunos.getCodigo()); ps.execute(); ps.close(); } catch (SQLException e) { e.printStackTrace(); } return alunos; }

rafaelviny

esqueci de falar q tenho minha classe q faz os gets e os sets

public class Produto {
    private int codigo;
    private String nome_pro;
    private double preco_custo;
    private double preco_ven_vista;
    private double preco_ven_prazo;
    private String descricao;

    
    public void setCodigo(int codigo) {
      this.codigo = codigo;
    }
    public void setNomeProduto(String nome_pro){
        this.nome_pro = nome_pro;
    }
    public void setPrecoCusto(double preco_custo){
        this.preco_custo = preco_custo;
    }
    public void setPrecoVendaVista(double preco_ven_vista){
        this.preco_ven_vista = preco_ven_vista;
    }
    public void setPrecoVendaPrazo(double preco_ven_prazo){
        this.preco_ven_prazo = preco_ven_prazo;
    }
    public void setDescricaoProduto(String descricao){
        this.descricao = descricao;
        
    }
  
    
    public int getCodigo(){
        return codigo;
    }
    public String getNomeProduto(){
        return nome_pro;
    }
    public double getPrecoCusto(){
        return preco_custo;
    }
    public double getPrecoVendaVista(){
        return preco_ven_vista;
    }
    public double getPrecoVendaPrazo(){
        return preco_ven_prazo;
    }
    public String getDescricaoProduto(){
        return descricao;
    }
ramilani12

Vc tem 5 parametros(conte os ?) no SQL e veja no seu PreparedStatement vc esta passando 6 …

lcegatti

No seu sql falta definir a váriavel para Preco_Venda_Prazo:

O correto seria:

update produto set  Nome_Produto = ?, Descricao_Produto = ?, Preco_Custo = ?, Preco_Venda_Vista =?, Preco_Venda_Prazo = ?  where cod_produto = ?

[]'s

rafaelviny

Ta certo =/

agora funciona

mmmuito obrigado

abraço

Criado 10 de outubro de 2008
Ultima resposta 10 de out. de 2008
Respostas 5
Participantes 4