Como dar baixa no estoque?

Boa tarde pessoal. Meu problema é o seguinte, é possível dar baixa no estoque usando update do mysql? Se sim como seria o comando? Meu problema é que não sei como seria o comando para apenas alterar o valor da variável “quantidade” dentro do banco. Queria que depois que finalizasse a compra, todos os item que listei na jtable tivessem seus valores alterados.

private Connection con;

public void create(modelBeans.controlBeans mod){
    
    this.con = new connectionFactory().getConnection();
            
    PreparedStatement stmt = null;
    try {
        stmt = con.prepareStatement ("INSERT INTO historico (id, nome, marca, quantidade, valor, peso, dia, parcial, total) VALUES(?,?,?,?,?,?,?,?,?)");
        stmt.setString(1, mod.getNome());
        stmt.setString(2, mod.getMarca());
        stmt.setString(3, mod.getQuantidade());
        stmt.setString(4, mod.getValor());
        stmt.setString(5, mod.getPeso());
        stmt.setString(6, mod.getDia());
        stmt.setString(7, mod.getParcial());
        stmt.setString(8, mod.getTotal());
        stmt.setString(9, mod.getId());
        stmt.executeUpdate();
        JOptionPane.showMessageDialog(null,"Produto inserido com sucesso!");
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null,"Erro ao inserir produto!\n" + ex);
    }finally{
        connectionFactory.closeConnection(con, stmt);
    }
    
}        

Esse código acima é o meu insert no banco.

public void update(modelBeans.controlBeans mod){

    this.con = new connectionFactory().getConnection();
            
    PreparedStatement stmt = null;
    try {
        stmt = con.prepareStatement ("UPDATE produto SET quantidade=? WHERE id=?");
        stmt.setString(1, mod.getQuantidade());
        stmt.executeUpdate();
        JOptionPane.showMessageDialog(null,"Atualizado com sucesso!");
    } catch (SQLException ex) {
        JOptionPane.showMessageDialog(null,"Erro ao atualizar!\n" + ex);
    }finally{
        connectionFactory.closeConnection(con, stmt);
    }
    
}

Este acima é o esbouço de como pensei que seria o update, mas me amarrei porque não sei fazer a função entre as jtextfilds para depois ele debitar o valor. Obrigado desde já.

Ai galera me ajuda tô precisando mesmo.

Você tem duas situações específicas, quando vai baixar um produto do estoque

  • Quando uma única unidade é vendida (considerando, apenas, unidades)
  • Quando mais de uma unidade é vendida, ao mesmo tempo.

No primeiro caso, pode seguir alguma das coisas ditas nesta thread.
No segundo caso, você só precisa adapter o que disseram acima.

Por outro lado, precisa se atentar ao seguinte, dependendo do tipo de sistema que está desenvolvendo, o mesmo não pode permitir que o produto fique negativo (quantidade < 0) Assim sendo, o ideal é , a partir da busca pelo produto, já identificar se a quantidade do mesmo é > 0 e agir de três maneiras:

  • Sendo igual a zero, já apresenta mensagem de erro e bloqueia a continuidade
  • Sendo maior que zero e a quantidade informada seja maior que a quantidade disponível, apresenta mensagem de erro e solicita uma quantidade <= a quantidade disponível.
  • Sendo maior que zero e a quantidade informada menor que a disponível, prossegue de boas.

Ficou mais ou menos claro?