JTable änderung sofort auch in MySQL ändern.

Muffelhs

Mitglied
Hallo Community,

schreibe ein kleines Programm womit ich auch datenbanken zugreifen kann und deren Tables dann in meiner JTable anzeigen lassen will.

Das klappt auch alles bis jetzt prima.

Nun will ich eine änderung in der Jtable auch sofort in der mysql datenbank übernehmen.

Die Methode changeValueAt in der Table Model klasse ist dafür zuständig.

Java:
	public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
		values[rowIndex][columnIndex] = aValue.toString();
	
	}

das ist ja soweit klar.

die TableModel klasse hat zugriff auf meine sql klasse.
das auslesen in der sql klasse mache ich in form einer schleife

Java:
try {			
			rs = st.executeQuery( "SELECT * FROM " + sqlTable );
			ResultSetMetaData rsmd = rs.getMetaData();
			int n = rsmd.getColumnCount();
			collumns = new String[n];
			for( int i=1; i<=n; i++ )    
				collumns[i-1] = rsmd.getColumnName(i);
			values = new Vector[collumns.length];
			for(int j = 0 ; j < collumns.length; j++){
				values[j] = new Vector();
			}
			while( rs.next() ) {
				for( int i=1; i<=n; i++ )  
					values[i-1].put(rs.getString(i));
			}			
		}catch( Exception ex ) {
			System.out.println("Fehler beim kopieren der Tabelle.");
		}finally

das auslesen müsste ich ja weiterhin machen bis ich an den bestimmten wert komme den ich ändern muss.
leide ist mit keine funktion in sql bekannt womit ich sofort auf eine zelle mittels row und collumn zugreifen kann ..

könnt ihr mir eine möglichkeit sagen wie ich sofort die änderung in der jtable auch in der sql table machen kann?

gruß

Muffel
 
S

SlaterB

Gast
mit dem ColumnName weißt du doch welches Feld in der Datenbank betroffen ist,
bleibt noch die Zeile, da solltest du eine eindeutige Id in der ersten Column anzeigen

völlig generisch ohne irgendwelche Informationen über die Daten wird es kaum gehen,
notfalls baue dir eine Query, die alle Werte aus der aktuellen Zeile der Tabelle vor der Veränderung ausliest und in der DB abfragt:
update .. where column1 = wert1 and column2 = wert2 ..

aber dann hast du spätestens dann verloren, wenn zwei identische Einträge in der DB vorliegen,
(wobei man mit diesem Fall natürlich auch mit jedem anderen Verfahren Probleme hätte)
 

Muffelhs

Mitglied
diese 2 möglichkeiten gingen mir auch durch den kopf.

wenn ich mit meinen tabellen arbeite ist es ja auch kein problem ne id spalte zu machen.

ich kann aber nicht bei jeder fremden table die ich einlese einfach eine spalte hinzufügen mit ner eindeutigen id..
und bei dem 2. vorschlag hat man eben das problem mit den doppelten einträgen


wieso hat sql keinen befehl womit man sofort auf eine zelle mittels row und column zugreifen kann?
völlig unverständlich =/

gibts noch irgendwelche möglichkeiten ?
 

ice-breaker

Top Contributor
das geht natürlich auch ;)
einfach in den where-Teil alle Attribute deiner Zeile reinmachen.

also wenn deine JTable die Spalten name, nachname, geburtsdatum hat und du das Geburtsdatum änderst:
Code:
UPDATE user SET gebdate = NEW_DATE WHERE name = JTABLE_NAME and nachname = JTABLE_NACHNAME and gebdate = OLD_DATE

die groß geschriebenen Strings sind natürlich zu ersetzen.
 
G

Gast2

Gast
habe auch nicht gesagt, dass man nicht auf eine spalte zugreifen kann.
ich habe gesagt das man nicht sofort auf eine Zelle mit Hilfe von der Spalte und der Zeile zugreifen kann!

Ja durch den PK kannst du doch auf die Zeile zurückgreifen ...
Du musst in deiner JTable nur jedes mal den PK in der 1. Spalte(kann man auch unsichtbar machen) anzeigen lassen, damit du beim update den PK mitangeben kannst!!!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Wie kann ich eine Jtable mit Inhalt einer SQL Abfrage füllen Datenbankprogrammierung 14
H Tabellenspalte in JTable in der falschen Reihenfolge Datenbankprogrammierung 10
M Datenbank editierbach machen in JTable Datenbankprogrammierung 13
L jTable mit Datenbankwerten befüllen Datenbankprogrammierung 7
S MySQL JTable zeigt nach Datenbankabfrage eine Spalte zu viel an Datenbankprogrammierung 0
A SQLite jTable binding mit Netbeans Datenbankprogrammierung 11
C MySQL JTable in JScrollPane nach insert aktualisieren Datenbankprogrammierung 3
M MySQL SQL Abfrage in JTable mit Berechnung Datenbankprogrammierung 3
L JTable-DB: Letzter wert wird nicht angezeigt. Datenbankprogrammierung 0
S MySQL jPMdbc&MySQL = Fehlerhafte Umlaute in JTable Datenbankprogrammierung 0
R HSQLDB Tabelle in JTable übertragen Datenbankprogrammierung 3
P MySql daten in leeren jtable übertragen Datenbankprogrammierung 5
D von Datenbank in JTable füllen Datenbankprogrammierung 16
D JTable stellt DB da Datenbankprogrammierung 24
A Ausgewählten Jtable Eintrag aus Db löschen Datenbankprogrammierung 9
D DB Tabelle in JTable anzeigen - Probleme Datenbankprogrammierung 8
Rudolf MySQL MySQL Tabelle mit Fremdschlüsseln in JTable darstellen Datenbankprogrammierung 5
E csv datei in JTable einlesen Datenbankprogrammierung 3
D ArrayIndexOutOfBoundsException bei Update von JTable und Model Datenbankprogrammierung 13
E JTable mit Datenbankinhalt befüllen Datenbankprogrammierung 4
N MySQL MYSQL Inhalt an JTable übergeben. Datenbankprogrammierung 11
0 ResultSet in JTable Datenbankprogrammierung 14
M MySQL Table in Jtable integrieren Datenbankprogrammierung 26
B MySQL Row und ColumnIndex aus einer JTable (mysqlDb) selectieren Datenbankprogrammierung 18
X Daten einer DatenbankTabelle in JTable darstellen Datenbankprogrammierung 13
M SQL Abfrage in jTable einfügen Datenbankprogrammierung 8
oliver1974 JPA, JTable und 2 DB-Tabellen... Datenbankprogrammierung 2
K JTable mit JDBC verbinden Datenbankprogrammierung 5
D PostgreSQL Von JTable -> Datenbank Datenbankprogrammierung 6
T Recordsets in eine JTable einlesen mit Netbeans 6.0 Datenbankprogrammierung 2
P JTable mit Daten aus MySQL befüllen mit Filterung Datenbankprogrammierung 3
N ID des Datensatzes aus JTable holen (nicht Index!) Datenbankprogrammierung 4
J Von Datenbank --> Vector --> JTable Problem Datenbankprogrammierung 6
J Klasse für Datensatzblättern in Verbindung mit JTable gesuch Datenbankprogrammierung 6
J jTable aktualisieren! Datenbankprogrammierung 2
V DB-Inhalt in JTable Datenbankprogrammierung 5
D Daten von Datenbank in JTable füllen... Datenbankprogrammierung 3
G JTable befüllen Datenbankprogrammierung 5
A Client-Server anwendung sofort aktualisieren Datenbankprogrammierung 7

Ähnliche Java Themen

Neue Themen


Oben