JavaFX Database - Egy a GUI-n kiválasztott record törlése az adatbázisból

0 értékelés
31 megtekintés
Madsane (10 pont) kérdezte Júl 30.

Hali! Van egy ilyen grafikus felületem:

És azt szeretném elérni, hogyha kiválasztok egy sort és rányomok a "Delete" gombra, akkor az adatbázisból kitörli a kiválasztott recordot. Azt már elértem, hogy a listából eltünteti a sort ("table.getItems().removeAll(table.getSelectionModel().getSelectedItem());"), de fogalmam sincs, hogy hogyan közöljem az adatbázissal, hogy melyik sor van kijelölve, ezáltal melyik recordot kell törölje.

Vagyis ezt kéne befejezni:

"DELETE FROM ANIMALS WHERE ..."

A where a probléma... Pár kódrészlet ami kellhet a megoldáshoz: https://pastebin.com/DFYwTYGr

1 Válasz

0 értékelés
wia (22 pont) válaszolta meg Aug 3.
Krisz kiválasztva Aug 6.
 
Legjobb válasz
DELETE FROM ANIMALS WHERE ID=X (ahol X=1,2,3 stb lehet) (feltételezem, hogy primary key-t ID nak nevezted el az adatbázisban)

Az X értékét be kellene szerezned a listából

Ezt pedig úgy tudod megtenni, hogy nem az kiválaszott indexet kéred le, hanem a kiválasztott objektumot, így:

Animal a = tableView.getSelectionModel().getSelectedItem()

long id = a.getId()

ezután tudod használni az SQL utasításban:

DELETE FROM ANIMALS WHERE ID=" + id + ";"

Plusz, én nem törölném ki a listából az elemet ahogy te teszed, hanem inkább az adatbázisból törlés után újrafrissetném a listView-t. (hátha nem csak te töröltél közben az adatbázisból)
...