Como faço para apagar a linha do banco de dados independente do valor dela?

Opa tudo bem?

Objetivo: quero apagar uma linha utilizando sql independente do valor dela

o problema é o seguinte: estou usando uma JTable para mostrar os valores do meu banco de dados e um MouseListiner para capturar o número da linha, passando esse valor para um método que a exclui, através de um comando sql que utiliza o campo chave do tipo auto increment.
Funciona normalmente na primeira utilização porém nas demais ocorreu um erro por que o banco de dados fica fora de ordem.
ex exemplo table

como o listiner vai capturar o número da linha, não vou poder usar o campo chave para deletar.

como faço para apagar a linha independente do valor dela?

Acho que a soluçao mais simples é fazer o inverso do que tá perguntando: ao invés de fazer o banco de dados entender o número da linha, faça o MouseListener capturar o valor da chave.

Não sei se entendi, mas o número da linha desse JTable não existe no banco se dados, correto? O que existe é o campo chave, não tem mágica.

Nao conheço esse JTable, mas geralmente tem que deixar essa coluna chave invisível para o usuário, para uso interno para excluir por exemplo.

Como o @javaflex comentou, não existe mágica. Você será obrigado a dizer ao banco de dados o que está removendo.
E isso não está ligado ao fato de tuas PKs serem auto incrementáveis, mas, ao fato de que, a partir de uma exclusão qualquer ou de um insert que não deu certo, você já tem um valor de PK que nem sempre reflete a realidade das tuplas (as tais linhas a que você se refere).
Você pode manter o mouselistener, mas, após identificar a linha selecionada, precisará obter o valor referente à chave primária (na verdade, o valor de alguma coluna que tem valores únicos, o ideal é a PK).
Então, fica fácil, só criar o delete tendo como parâmetro a tua PK.

1 curtida