phpbar.de logo

Mailinglisten-Archive

SELECT in Swing TableModel - wie geht das am Besten?

SELECT in Swing TableModel - wie geht das am Besten?

Martin Rösch martin.roesch at generalobjects.com
Mit Feb 12 10:46:13 CET 2003


Wie kriegt man MySQL-Daten am Besten in JTables von Swing angezeigt?

Es geht um Tabellen mit 20-50MB, sie müssen nur angezeigt werden, und Daten,
die im Fenster zu sehen sind, müssen auch nicht aktualisiert werden.

Bisher habe ich an drei verschiedene Wege gedacht. Welcher ist nach Eurer
Erfahrung der Beste? Oder gibt es noch was Besseres?

1.) *Direkt* und live aus der Datenbank? Je 1 SQL-Aufruf für jeden der
vielleicht mehreren Tausend getValue(row,col)-Aufrufe, die die JTable
absetzt, wenn der Benutzer die Scrollbars bewegt?
2.) Nur 1 SQL-Befehl durchführen und die getValue()-Aufrufe aus dessen
ResultSet bedienen?
3.) Alles in den Speicher (z.B. in ein Object Array) ziehen und von da aus
die JTable füttern.

Viele Grüße
Martin Rösch

-----------------------------
Zu den 3 Wegen:

1) Offene Frage zu dieser Alternative: Wie kann ich in einer SQL-Tabelle auf
die n-te Zeile zugreifen?

2) (Vielleicht ein bißchen radikal?) Den ResultSet live als TableModel
nehmen. Mit boolean absolute(int n) kommt man auf die n-te Zeile.
Offene Frage hier: hält der JDBC-Driver das aus?

3) Java-Objekte als Lieferant: Nach dem SELECT den ResultSet in ein
DefaultTableModel umkopieren. Offene Frage hier: Wie macht man das am
Besten? Wirklich Zeile für Zeile und Value für Value?

Vermutung: Zuerst die Größe des ResultSet feststellen. Hierfür im ResultSet
mit last() auf die letzte Zeile positionieren und mit getRow() deren Nummmer
holen, die zugleich die Größe des ResultSet ist. Mit dieser Angabe einen
Vector anlegen

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive