TableModel mit Daten aus Datenbank füllen

Kim

Mitglied
Hallo zusammen,

ich hänge zurzeit an dem Problem, dass ich meine Daten aus einer Datenbank nicht in das AbstractTableModel bekomme. Ich habe natürlich schon viel gegoogelt, jedoch leider nichts gefunden, was auf mein Problem passt.

Ich will meine Daten direkt in das Model packen, ohne es zwischenspeichern zu müssen, egal ob Array oder Vektor.
Kann gut sein, dass es an mir liegt, weshalb ich nichts gefunden habe, da das Thema: JTable / TableModel bis vor wenige Tage neu war für mich.

Bei der Datenbank handelt es sich um eine FireBird-DB, was jedoch nicht so wichtig sein dürfte.


Vielen Dank & Grüße

Kim
 
Zuletzt bearbeitet von einem Moderator:
M

Marcinek

Gast
Komische Anforderung..

Aus welchem Grund soll das so sein?

Dann sieht dein Ansatz so aus, dass du dir ein eigenes TableModel schreiben musst.
 
S

SlaterB

Gast
AbstractTableModel hat an sich überhaupt keine Kapazitäten, irgendwas zu speichern/ zu übergeben,
da bekommst du nicht einen Datensatz hinein, ob einzeln, Array oder Liste/ Vektor,

erstmal brauchst du ein anderes Model
 
S

SlaterB

Gast
wenn du die Quelle postest/ zitierst kann man dies vielleicht näher erläutern,
ansonsten ist vorher nichts genaues zu sagen

generell gilt immer und überall, dass Übertragung in Listen vielleicht eine unnötige Liste beinhaltet,
die am Ende weggeworfen wird, weil die Daten in die intere Datenstruktur übernommen werden,
dagegen hilft z.B. eine Methode addSingeEntry(entry), falls es sie gibt, wo auch immer,

mit nicht allzu großen Pech kann man sich da dann aber andere gravierendere (und immer noch nebensächliche) Probleme einhandeln,
etwa dass die intere Datenstruktur mehrfach mit gewissen Aufwand vergrößert werden muss, viel mehr als die eine unnötige Liste,
hätte man gleich alle Datensätze in einer Liste übergeben, wäre das Einfügen in die interne Datenstruktur vielleicht effektiver, trotz der danach weggeworfenen Liste

viel wichtiger ist aber, dass du über solche Nebensächlichkeiten nicht nachdenken solltest,
relevant ist das Programm, die Funktionalität, nicht irgendwelche Details im Promille-Bereich Zeit/ Platz
 
Zuletzt bearbeitet von einem Moderator:

Kim

Mitglied
Du kannst es auch direkt in das Tabellenmodel schreiben:

try { // executeQuery - Datenabfrage
Statement st=mySql.connection.createStatement();
ResultSet rs = st.executeQuery("select...");
ResultSetMetaData rsmd = rs.getMetaData();
for(int i=1; i<=rsmd.getColumnCount(); i++)
tabellenModel.addColumn(rsmd.getColumnName(i));
while(rs.next() ) {
String[] reihe = new String[rsmd.getColumnCount()];
for(int s=1; s<=rsmd.getColumnCount(); s++)
reihe[s-1]=rs.getString(s);
tabellenModel.addRow(reihe); // neue Reihe hinzufügen
} //EndWhile
rs.close(); st.close();
} catch( SQLException ex ) {}[/B]


Dies hatte ich mal versucht (abgeändert), jedoch gibt es (bei mir) die methode addRow() nicht.

Oder kann es vielleicht sein, dass die zitierte Person sich vertan hat und Code für ein anderes Model gepostet hat?
 
S

SlaterB

Gast
ich halte es vorerst wahrscheinlicher, dass du dich beim Lesen/ bei der Interpretation vertan hast, als die Person, die den Code geschrieben hat ;)
zumal in dem Quote nicht steht, als was das TableModel dort bezeichnet ist

was es tatsächlich IST, ist klar, ein DefaultTableModel, da gibt es addRow(), entspricht ja im wesentlichen meinen Erläuterungen,
kannst ruhig direkt addRow() nehmen statt erst alles in eine Liste zu machen, aber von der Performance her ist das wirklich irrelevant,

viel interessanter wiederum habe ich einen anderen allgemeinen Merksatz anzumerken: Trennung von Zuständigkeiten,
du vermischst hier DB-Code mit Swing-GUI, was ist wenn du später mal dieselben Daten für einen anderen Zweck, etwa einer interner Auswertung, laden möchtest?
dann stört das nicht benötigte TableModel darin, dann musst du wahrscheinlich eine zweite Methode schreiben

wichtiger als irgendwelche Performance-Gedanken ist ein sauberer übersichtlicher und verwendbarer Aufbau,
alle DB-Methoden in eine Klasse, allen GUI-Kram in eine andere usw.

Java:
Klasse DB {
  public List loadDataX();
}
Klasse GUI {
  public void guiXY() {
    List data = DB.loadDataX();
    model.setData(data); 
  }
}
Klasse Logik {
  public void logikXY() {
    List data = DB.loadDataX();
    analyse data
  }
}
Listen als neutrale Austausch-Objekte sind dabei ganz normal, auch dass sie wieder weggeworfen werden
 
Zuletzt bearbeitet von einem Moderator:

Kim

Mitglied
Hallo SlaterB,

du hast recht, nicht der zitierte hat sich geirrt, sondern ich.
Es ist garnicht die Rede von AbstractTableModel, ich muss wohl etwas verwechselt haben, sry.

Übersichtlicher Aufbau: Mein Code sieht nicht aus, wie der zitierte!!!


Ich versuch mein Glück mal ohne AbstractTableModel.

Vielen dank!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Swing Daten in JTable wiedergeben per TableModel und MVC Pattern AWT, Swing, JavaFX & SWT 16
K TableModel Daten übergeben AWT, Swing, JavaFX & SWT 9
X Swing Daten aus Vector ins TableModel ?? AWT, Swing, JavaFX & SWT 12
D TableModel + Daten bearbeiten + Daten zurückschreiben AWT, Swing, JavaFX & SWT 9
S Daten aus editierbaren TableModel lesen AWT, Swing, JavaFX & SWT 7
C TableModel zugehörige Table ermitteln AWT, Swing, JavaFX & SWT 3
E Eigenes TableModel für ArrayList<String[]> AWT, Swing, JavaFX & SWT 5
W Neues TableModel und JTable wird nicht refreshed AWT, Swing, JavaFX & SWT 3
D Swing JTable TableModel + RowCount AWT, Swing, JavaFX & SWT 18
JAVAnnik Problem mit TableModel AWT, Swing, JavaFX & SWT 3
S Swing Setzen von TableModel liefert NullPointer AWT, Swing, JavaFX & SWT 6
S TableModel Header wird nicht angezeigt AWT, Swing, JavaFX & SWT 5
K verständnissproblem mit TableModel AWT, Swing, JavaFX & SWT 2
K zwei TableModel AWT, Swing, JavaFX & SWT 9
N Swing Eintrag in JTable an dessen TableModel weiterreichen AWT, Swing, JavaFX & SWT 3
hdi Swing Komisches Problem mit TableModel & setAutoCreateRowSorter AWT, Swing, JavaFX & SWT 2
E Swing TableModel fireTableDataChanged führt zu IndexOutOfBoundsException AWT, Swing, JavaFX & SWT 9
F Tablemodel zu mehreren Tabellen AWT, Swing, JavaFX & SWT 6
K JTable +TableModel --> Anpassung der Tabellengröße (Zeilenanzahl) AWT, Swing, JavaFX & SWT 3
L Klick auf JTable -> EditorPane manipulieren, Fragen zu TableModel AWT, Swing, JavaFX & SWT 9
E JTable und tablemodel Verständnisproblem AWT, Swing, JavaFX & SWT 3
C Kann Konstruktor von eigenem TableModel nicht nutzen AWT, Swing, JavaFX & SWT 2
D eigenes Tablemodel, Zeile löschen ArrayindexOOB excp AWT, Swing, JavaFX & SWT 4
P Eigenes TableModel abgeleitet von AbstractTableModel (neue rows nicht sichtbar) AWT, Swing, JavaFX & SWT 6
S Table oder TableModel so ueberschreiben, dass Columns minimale Breite haben? AWT, Swing, JavaFX & SWT 2
R JTable - TableModel AWT, Swing, JavaFX & SWT 6
D JTable - TableColumnModel - TableModel AWT, Swing, JavaFX & SWT 3
S JTable nimmt TableModel nicht an AWT, Swing, JavaFX & SWT 4
D Mehrere CheckBoxen im TableModel wechselseitig ausschließen AWT, Swing, JavaFX & SWT 5
R TableModel und Columnmodel - Zusammenspiel? AWT, Swing, JavaFX & SWT 2
G TableModel mit anderen Spalten AWT, Swing, JavaFX & SWT 4
G JTable - TableModel aus ArrayList AWT, Swing, JavaFX & SWT 8
A JTable, eigenes TableModel und dessen Objekte AWT, Swing, JavaFX & SWT 4
G Frage zu JTable und TableModel AWT, Swing, JavaFX & SWT 4
O TableModel AWT, Swing, JavaFX & SWT 12
V Vector->TableModel->RowSorter:Bei Markierung Index im AWT, Swing, JavaFX & SWT 2
F TableModel Spaltenkoepfe benamen, wie? AWT, Swing, JavaFX & SWT 2
F Wie MouseListener bei TableModel anmelden? AWT, Swing, JavaFX & SWT 3
G JTable, TableModel und CellRenderer AWT, Swing, JavaFX & SWT 3
R DataVector bei TableModel - Class Cast Exception AWT, Swing, JavaFX & SWT 9
N TableModel mit CheckBox? AWT, Swing, JavaFX & SWT 5
J Tablemodel AWT, Swing, JavaFX & SWT 2
G jTable + ScrollPane (+ TableModel) AWT, Swing, JavaFX & SWT 7
D invokeLate bei änderung im TableModel? AWT, Swing, JavaFX & SWT 4
G TableModel von JTable wieder entfernen AWT, Swing, JavaFX & SWT 10
G TableModel auswerten und in Datei schreiben AWT, Swing, JavaFX & SWT 3
P JTable TableModel JFreeReport AWT, Swing, JavaFX & SWT 4
T anlegen einer jTable mit TableModel AWT, Swing, JavaFX & SWT 3
H JTabel - RowFilter Daten für Berechnung filtern AWT, Swing, JavaFX & SWT 6
M Daten zufällig Einlesen aus einer Datei (binäres Format) AWT, Swing, JavaFX & SWT 7
W Nullpointer Exception beim übertragen von Daten von Scene zu Scene AWT, Swing, JavaFX & SWT 6
W Daten von Controller zu Controller übertragen AWT, Swing, JavaFX & SWT 7
D Columns unabhängig voneinander mit Daten füllen JavaFx AWT, Swing, JavaFX & SWT 1
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
T Anbinden der Tabelle an die Daten AWT, Swing, JavaFX & SWT 5
F JavaFX Tabelle mit Daten füllen AWT, Swing, JavaFX & SWT 9
A JavaFX Daten in eine HTML-Table mit JS schreiben AWT, Swing, JavaFX & SWT 3
ralfb1105 JavaFX Daten zwischen Controllern austauschen- neue Frage AWT, Swing, JavaFX & SWT 7
ralfb1105 JavaFX Daten zwischen Controller "austauschen" AWT, Swing, JavaFX & SWT 65
B AWT Bot um Daten auf Website einzugeben und die Antwort zu bekommen AWT, Swing, JavaFX & SWT 2
L Daten bearbeiten ohne GUI zu blockieren - daten haltung/zurück geben AWT, Swing, JavaFX & SWT 15
ralfb1105 Swing JComboBox update der Daten AWT, Swing, JavaFX & SWT 8
ralfb1105 Swing Dynamischer Graph zum anzeigen Perfomance Daten AWT, Swing, JavaFX & SWT 35
D MySQL Daten in JTable anzeigen AWT, Swing, JavaFX & SWT 2
K TreeTableView (cellFactory) - wie Daten in Spalten einfügen AWT, Swing, JavaFX & SWT 0
A JTable mit Daten füllen AWT, Swing, JavaFX & SWT 1
J TableView Daten werden nicht ausgegeben AWT, Swing, JavaFX & SWT 9
A Swing Wie Daten in der Form speichern? Array oder ArrayList AWT, Swing, JavaFX & SWT 2
T JavaFX Model Daten übergeben AWT, Swing, JavaFX & SWT 4
D Swing Größe einer JComboBox im GridBagLayout aufgrund der maximalen Länge der enthaltenen Daten AWT, Swing, JavaFX & SWT 7
J JavaFX Tableview Daten hinzufügen aus anderer Klasse AWT, Swing, JavaFX & SWT 7
J Tableview Daten hinzufügen und aktualisieren AWT, Swing, JavaFX & SWT 5
S AWT Daten über TextField und Button in array speichern AWT, Swing, JavaFX & SWT 5
G Event Handling TableView daten in ein neues Fenster herauslesen? AWT, Swing, JavaFX & SWT 3
S JavaFX (Best Practise) Daten zwischen Controllern austauschen AWT, Swing, JavaFX & SWT 1
thet1983 JavaFX TableView Objekt Daten anzeige AWT, Swing, JavaFX & SWT 2
L JavaFX Verzögerung beim Laden von Daten AWT, Swing, JavaFX & SWT 6
L Daten in neuem Fenster AWT, Swing, JavaFX & SWT 2
Tort-E JavaFX Daten an WebView Komponente AWT, Swing, JavaFX & SWT 1
I JTable: Doppelklick auf Table soll neues Fenster öffnen und Daten aus JTable anzeigen AWT, Swing, JavaFX & SWT 4
S JTable Daten aus Array AWT, Swing, JavaFX & SWT 9
M Java FX Daten an Controller übergeben AWT, Swing, JavaFX & SWT 3
S JList ist leer, aber DefaultListModel hat die Daten? AWT, Swing, JavaFX & SWT 9
M JavaFX Von FXML-Controllerdatei Daten zurückgeben AWT, Swing, JavaFX & SWT 6
F JavaFX Daten aus Tabelle in ComboBox AWT, Swing, JavaFX & SWT 9
B Swing JTable mit Daten - Reihen-Größe anpassen AWT, Swing, JavaFX & SWT 0
D Applet GWT speichert Daten nicht in Datenbank AWT, Swing, JavaFX & SWT 2
S SWT In Listen den Einträgen Daten zuordnen AWT, Swing, JavaFX & SWT 2
T SWT Table (mit Spinner Spalte) Daten auslesen AWT, Swing, JavaFX & SWT 4
F Swing JTable: Daten voreinstellen AWT, Swing, JavaFX & SWT 4
B Daten in eine JTable schreiben AWT, Swing, JavaFX & SWT 3
H Swing JfreeChart aktualisieren - mit daten aus thread AWT, Swing, JavaFX & SWT 3
J valueChanged()-Methode liefert unbrauchbare Daten AWT, Swing, JavaFX & SWT 4
B Datenübergabe zwischen Tabs und Daten speichern AWT, Swing, JavaFX & SWT 2
D SWT TreeViewer: Daten aus Model gelöscht... trotzdem noch im Baum AWT, Swing, JavaFX & SWT 4
D Daten von JDialog an JTable in JFrame übergeben AWT, Swing, JavaFX & SWT 7
O JTable zeigt die alte Daten wieder AWT, Swing, JavaFX & SWT 23
H JTable zeigt keine Daten an AWT, Swing, JavaFX & SWT 5
M Swing Daten von JPanel zu JFrame senden AWT, Swing, JavaFX & SWT 13
C Swing JTable Daten einfügen AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen


Oben