[RESOLVIDO] Problema com um update no banco de dados com preparedstatment

5 respostas
F

Boa noite,
estou com uma dúvida com relação a um update no banco de dados que não eta funcionando.
Fiz o comando update assim.:

String updateEstoque = “UPDATE estoqueproduto SET estoque = estoque + ? WHERE codigo = ?”;

E o método assim.:

public void atualizaEstoque(EstoqueBean estoque) {
        try {
            pstm = bd.conectar().prepareStatement(updateEstoque);
            pstm.setInt(1, estoque.getQuantidade());
            pstm.setInt(2, estoque.getCodigoProduto());
            int resultado = pstm.executeUpdate();
            if (resultado != 1) {
                JOptionPane.showMessageDialog(null, "Erro ao Atualizar o estoque!", "Aviso!", JOptionPane.WARNING_MESSAGE);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Estoque.class.getName()).log(Level.SEVERE, null, ex);
        }
        bd.desconectar();
    }

Onde esta meu erro? Não posso fazer valor para o primeiro ?.
Obrigada!

5 Respostas

Leandro_M

Fernanda,

Envia o log do erro por favor, não sei se funciona esta instrução --> estoque + ?

F

Então Leandro, ele não dá erro, não gera nenhuma exceção. Simplemente ele mostra a mensagem que coloquei no JOptionPane.
Se não posso fazer dessa forma estoque = estoque + ?, como poderia fazer?
Obrigada!

Leandro_M

Coloca um printStackTrace dentro do catch, executa novamente e envia o log. OU faz um debug para ver em qual linha ocorre o erro.

} catch (SQLException ex) { ex.printStackTrace(); // <--- Logger.getLogger(Estoque.class.getName()).log(Level.SEVERE, null, ex); }

C

Fernanda, tem certeza que está dando erro?

Você está pegando o retorno do executeUpdate() como int e verificando se ele é diferente de 1, caso seja, está exibindo a mensagem de erro.

Posso estar errado porém no meu entendimento se o retorno for 0 (zero), ou seja, diferente de 1, significa que o update funcionou corretamente.

F

obrigada pessoal pela atenção.
O problema era que eu tinha esquecido de inserir previamente o registro, ou seja, eu estava tentando fazer um update em um registro que simplesmente não existia.
Me desculpem!
Muito obrigada!

Criado 27 de maio de 2013
Ultima resposta 30 de mai. de 2013
Respostas 5
Participantes 3