jTable aktualisieren!

Status
Nicht offen für weitere Antworten.
J

Java Nooob

Gast
Folgendes Problem.

ICh habe ein jTable mit einem DefaultTable Model:
Code:
TableCheckOut.setModel(new javax.swing.table.DefaultTableModel(datacheckout, titlecheckout));

datacheckout ist ein Vector den ich aus einer Datenbank füllen lasse:
Code:
public static Vector TableDataCheckIn(){
    Vector<Vector> data = new Vector<Vector>();
    database.DataConnection.conOpen("SELECT * FROM CheckIn WHERE Status = '1'");
    
    try{
        
         while (database.DataConnection.rSet.next())
            {
               Vector record = new Vector();
               record.add(database.DataConnection.rSet.getString(1));
               record.add(database.DataConnection.rSet.getString(2));
               record.add(database.DataConnection.rSet.getString(3));
               System.out.println(database.DataConnection.rSet.getString(12));
               data.add(record);
               
            }
         
        }catch (Exception e){
            e.printStackTrace();        
        }
    database.DataConnection.conClose();
    return data;
}

soweit so gut. Es können jedoch mehrere Benutzer auf die Datenbank zugreifen und werte ändern.
Wie schaffe ich es das jedes mal wenn ein Wert geändert wurde (egal wer ihn geändert hat) mein jTable aktualisiert wird.
Das Programm läuft später auf mehreren PC gleichzeitig.

Hoffe ich habe es nicht zu kompliziert erklärt.

MFG
 
G

Guest

Gast
Ein einfaches Beispiel habe ich gerade nicht zur Hand, aber es lässt sich u.a. wie folgt lösen.

1) jeder Datensatz muss eindeutig identifizierbar sein, es reicht nicht nur die anzuzeigenden Werte zu übertragen.
Klartext: Die PK's (Primary Keys) der Datensätze musst du auch übertragen.
2) Wenn die Daten, die beim Client ankommen, versteckte Daten enthalten (z.B. die PK's), dann brauchst du
eine modififzierte Implementierung des TableModel, die nur die Spalten anzeigt, die du haben möchtest.
3) Serverseitig musst du Updates in Transaktionen durchführen
4) Änderungen kannst Du mit z.B. Versions-Pattern erkennen (zusätzliche Spalte in der Tabelle, die bei jedem Update
inkrementiert wird) SELECT vor UPDATE ist nötig.
5) Nach jedem Update schickst Du eine JMS Message mit den PK's der geänderten, gelöschten oder hinzugefügten
Datensätze
6) Clientseitig wartest Du auf solche Messages und holst neue oder geänderte Datensätze vom Server bzw. entfernst
clientseitig die gelöschten Datensätze aus dem TableModel.

Wie du siehst, ist es keine Sache für paar Zeilen Beispielcode. Es hängt auch davon ab, was
du da serverseitig am Laufen hast.
 
Also ich nehme an du greifst direkt aus deinem Programm auf die Datenbank zu ?

Es gibt eine Möglichkeit diese updates Relativ Simple zu realisieren.

Das Zauberwort heißt RMI mit Callback Verfahren. (Remote Method Invocation)
Hierfür wäre es aber notwendig das du dein Programm in einen RMI-Client verwandelst der Remote Methoden zum updaten der Tables anbietet, was nicht weiter tragisch ist und auf der Datenbank Seite , einen RMI - Server realisierst der deine SQL Anfragen an die Datenbank weiterleitet und die Results liefert. Das ist eigentlich auch kein großer Aufwand.

Der Vorteil: Jeder Client der sich auf den Server connected, kann von dir in einem Vector gespeichert werden.
Hierbei wird nur eine Referenz auf das RemoteObjekt gespeichert.
Wenn jetzt ein Client Daten ändert, kannst du über den Vector laufen und bei jedem Client die Update methoden aufrufen. Somit tun sich deine Tables dann refreshen.

Über RMI gibt es gute Beispiele bei Sun, hört sich kompliziert an ist es aber nicht.

Hoffe es hilft dir.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
C MySQL JTable in JScrollPane nach insert aktualisieren Datenbankprogrammierung 3
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
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
M JTable änderung sofort auch in MySQL ändern. Datenbankprogrammierung 7
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
V DB-Inhalt in JTable Datenbankprogrammierung 5
D Daten von Datenbank in JTable füllen... Datenbankprogrammierung 3
G JTable befüllen Datenbankprogrammierung 5
nonickatall MySQL SQL Abfrage erneut ausführen oder rs aktualisieren Datenbankprogrammierung 14
K Automatisches Ausführen um Datenbank zu aktualisieren Datenbankprogrammierung 2
OnDemand MySQL Daten aktualisieren Datenbankprogrammierung 6
E DB aktualisieren Datenbankprogrammierung 0
B MySQL DB Daten aktualisieren Datenbankprogrammierung 9
Hartigan Datenbankverbindung automatisch aktualisieren Datenbankprogrammierung 3
A Client-Server anwendung sofort aktualisieren Datenbankprogrammierung 7
M Hibernate - aktualisieren von Objekten Datenbankprogrammierung 7
G Aktualisierung Access-DB soll Ausgabe aktualisieren Datenbankprogrammierung 3

Ähnliche Java Themen


Oben