Por que apenas um dado da tabela é alterado?

1 resposta Resolvido
java
Moraisdelimahigor

Fiz um JTable, onde eu posso dá um update no Banco de Dados. Porém, apenas um dado muda:

private void salvarActionPerformed(java.awt.event.ActionEvent evt) {                                       
    for (int i = 0; i < tabela.getRowCount(); i++) {
        try {
            PreparedStatement pst = c.conn.prepareStatement("update ESTADOS"
                    + " set NOME_DO_ESTADO =?, SIGLA_DO_ESTADO =?"
                    + " where ID =?");
            pst.setInt(3, (int) tabela.getValueAt(i, 0));
            pst.setString(1, (String) tabela.getValueAt(i, 1));
            pst.setString(2, (String) tabela.getValueAt(i, 2));
            pst.execute();
            pst.close();
            JOptionPane.showMessageDialog(null, "DEU CERTO!");
        } catch (SQLException ex) {
            throw new RuntimeException(ex);
        }
        break;
    }
}

Código SQL:

CREATE TABLE ESTADOS
(
ID INT NOT NULL PRIMARY KEY GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
NOME_DO_ESTADO VARCHAR(20),
SIGLA_DO_ESTADO VARCHAR(2)
);

Minha tabela:

http://i.imgur.com/1wCx8Kq.png

O dado “Acre” é o único que se altera.

1 Resposta

pmlm
Solucao aceita

Estás a mandar o ciclo parar ao fim da primeira execução com este break.

Criado 15 de setembro de 2016
Ultima resposta 15 de set. de 2016
Respostas 1
Participantes 2