Delete não funcionando no código Java

Então, coloquei o print agora e, realmente, o id tá saindo certo. Eu não sei o que está errado, mas no método que puxa o remover, eu pego o número da posição da tabela, esse número é usado como parâmetro de um método que puxa o objeto que está nessa posição e esse objeto passa como parâmetro pro remover.
Segue os códigos para você entender:
Código do botão excluir:
public void btExcluirClick(ActionEvent e) {
int i = tab.getSelectedRow();
System.out.println("numero da tab " + i);
if (i != -1) {
int x = JOptionPane.showConfirmDialog(this, “Tem certeza que deseja excluir este dado?”, “Confirmação”,
JOptionPane.WARNING_MESSAGE);
if (x == 0) {
Categoria c = new TableModelCategoria().getCategoria(i);
System.out.println("id do categoria q ta no btexcluir " + c.getId());
CategoriaDAO cd = new CategoriaDAO();
cd.remover(c);
this.setVisible(false);
this.setVisible(true);
}
} else {
JOptionPane.showMessageDialog(this, “Escolha algum dado!”, “Aviso”, JOptionPane.PLAIN_MESSAGE);
}
}
Código do remover:
public void remover(Categoria c) {
String sql = “delete from tbCategoria where id = ?”;

    try {
        Connection con = new ConnectionFactory().getConnection();
        PreparedStatement st = con.prepareStatement(sql);
        st.setInt(1, c.getId());
        System.out.println(c.getId());
        st.execute();
        st.close();
        con.close();
    } catch (SQLException ex) {
        ex.printStackTrace();
    }
}

E também o código que eu usei pra criar a tabela Categoria:
create table tbCategoria(
id int primary key auto_increment,
nome varchar(200) not null
);

O SQL da tabela tá certo. Achei que vc tinha esquecido do AUTO_INCREMENT ou algo assim.

Esse println dentro do método remover tá mostrando o id certo?

1 curtida

Percebi uma coisa. No método btCadastrarClick, depois que vc chama o insert, vc não tá inserindo a Categoria criada ali na sua tabela, ou está?

1 curtida