Werte aus JTable in lokale Datenbank

Hallo,

die Situation ist etwas komplex, ich versuche mal alles wichtige aufzulisten:
Hole von einem Server Daten, werden in eine lokale Datenbank geschrieben.
Von dort werden die Daten aus verschiedenen Tabellen mittels einer SQL Abfrage (Select mit Join) in einer JTable und einem defaultTableModel angezeigt.

Soweit passt alles halbwegs, jetzt soll der Weg anders herum sein: die Daten aus der JTable bzw dem defaultTableModel (kurz hier dTM genannt noch) sollen (weil bearbeitet/geändert usw) in die Datenbank bzw in die jeweilige TAbelle geschrieben werden.
Ich würde jetzt, weil es mir am einfachsten erscheint, jeden Zeile in dem dTM durchgegangen werden (Anzahl mit getRowCount() und dann eine Schleife…) und dort alle Zellen ausgelesen werden (üblicherweise mit einer For-Schleife) und letztlich dann jede Zeile in die Tabelle der Datenbank geschrieben werden mit einem SQL-Update BEfehle, der in etwa so aussieht:

executeUpdate("Update (Select ... join .... usw - gleich wie beim AUslesen, um die gleichen Tabellen usw wie bei der Abfrage zu bekommen) set ... where...)

Kann das funktionieren? Ich scheitere momentan an der SQL-Abfrage mit dem Update

Du brauchst zum Speichern von Daten in eine Datenbank den den INSERT-Befehl.

Hallo,

hm naja es geht eher darum aktuelle Datensätze zu ändern, also eher um ein “Update”.
Ein Insert fügt ja immer einen Datensatz hinzu…!

Den ersten Teil habe ich bis auf ein paar Details fertig, also die Daten aus dem defaultTableModel zu lesen. Im nächsten Schritt geht es dann wirklich um den SQL Befehl an sich.
Zuvor werde ich aber noch die Spaltenanzahl dynamisch machen, damit diese sich immer an das defaultTableModel angleicht.

Ich werde mal weiter selbst probieren ;-)! Danke

Wenn alle Daten nur auf den neusten Stand gebracht werden sollen, bietet es sich an, mit Hilfe des Primärschlüssels die zu aktualisierenden Datensätze zu suchen und danach mit dem UPDATE-Befehl zu überschreiben.

EDIT: schon gelöst, ich mach daraus einfach eine String Variable, weil eine LinkedList nicht erforderlich ist ;-)! Danke

Hallo,

ja ich mach das mit dem Join - ich mach ein update auf die mit joins gemachte Tabelle, so kann ich sicher sein, dass alles da rein kommt wo es hin soll…! :wink:

So zu einem konkreten Problem:
Ich habe eine LinkedList:
[String, String, String]

Für die SQL Abfrage kann ich die eckigen Klammern aber nicht brauchen - wie bekomme ich die nun weg, damit nur noch „String, String, String“ (natürlich ohne Anführungszeichen) steht?
Bei der Api habe ich da nichts gefunden :wink:

Danke

Es gibt verschiedene Ansätze. Vermutlich ist der beste Weg über die [String#substring(int, int)](http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#substring(int, int)) Methode.