[RESOLVIDO]Atualização no banco de dados

Bom dia, ficou assim e continua a mesma coisa, dando o mesmo erro.

private int get_table_result() {
        int resultado;
        String linha = "" + jTable1.getValueAt(jTable1.getSelectedRow(), 1);
        int valor = Integer.parseInt(linha);
        resultado = valor + get_result();
        return resultado;
    }

    private int get_result() {
        String sql = "Select * from estoque where id=?";
        int qtd = 0;
        try {
            pst = conexao.prepareStatement(sql);
            pst.setString(1, campoid.getText());
            rs = pst.executeQuery();
            while (rs.next()) {
                qtd = Integer.parseInt(rs.getString(3));
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        return qtd;
    }

    public void atualizabanco() {
        String sql1 = "Update estoque set qtd=? where id=?";

        try {
            pst = conexao.prepareStatement(sql1);
            pst.setString(1, Integer.toString(get_table_result()));
            pst.setString(2, campoid.getText());
            pst.executeUpdate();

        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

Você tá clicando na tabela antes?

Sim

Esse erro não faz sentido.

Qual método você tá chamando depois de clicar na tabela?

get_table_result() e get_result() é interessante você colocar quando clicar na tabela.

Já o atualizabanco() você pode colocar quando clicar no botão.

Acho que não tem a ver com isso não, os métodos já estão sendo chamados no atualizabanco(), não é preciso colocar para quando clicar na tabela. Observe, eu tenho esse código para diminuir do meu banco o que eu adiciono na tabela, é quase a mesma coisa e funciona, esse que a gente está tentando não está funcionando.

public void consultaproduto() {
    String sql = "Select * from estoque where id=?";
    try {
        pst = conexao.prepareStatement(sql);
        pst.setString(1, campoid.getText());
        rs = pst.executeQuery();

        while (rs.next()) {
            int qtd = Integer.parseInt(rs.getString(3));
            double soma = 0;
            for (int i = 0; i < jTable1.getRowCount(); i++) {
                int valorAux = (int) jTable1.getValueAt(i, 2);
                soma += valorAux + 1;
            }
            if (campoqtd.getText() == rs.getString(3) + 1) {
                JOptionPane.showMessageDialog(null, "Não temos esta quantidade em estoque, a quantidade do produto é: " + qtd, "Atenção!", JOptionPane.WARNING_MESSAGE);
            } else {
                if (soma <= qtd) {
                    adiciona();
                    String sql1 = "Update estoque set qtd=? where id=?";
                    try {
                        int qtd1 = Integer.parseInt(campoqtd.getText());
                        int subtracao = qtd - qtd1;

                        pst = conexao.prepareStatement(sql1);
                        pst.setString(1, Integer.toString(subtracao));
                        pst.setString(2, campoid.getText());
                        pst.executeUpdate();

                    } catch (Exception e) {
                        throw new RuntimeException(e);
                    }
                } else {
                    JOptionPane.showMessageDialog(null, "Não temos esta quantidade em estoque, a quantidade do produto é: " + qtd, "Atenção!", JOptionPane.WARNING_MESSAGE);
                }
            }
        }
    } catch (Exception e) {
        JOptionPane.showMessageDialog(null, "Erro ao calcular Total Produtos: " + e.getMessage());
    }
}

e o erro é sempre o mesmo java.lang.ArrayIndexOutOfBoundsException: -1

Isso daí é um catch. Por acaso este catch é o try-catch que você acessa o BD ou conecta ao BD? Mande o try-catch completo que ocorre este erro por gentileza.

nenhum dos 2, esse catch é de outro método onde eu chamo o atualizabanco(), esse método onde está dando erro, é o que remove a linha e faz a subtração, jogando o valor para uma textfield, estou chamando o atualizabanco(), nele pois quero que quando remova a linha, o valor adicionado volte para o banco.

Alguém ajuda?

@Luiz_Henrique22 Chamei no seu inbox, verifique no seu perfil.