Nur der letzte Datensatz wird in Tabelle geschrieben

Exorcist

Mitglied
Hallo zusammen,

Ich verzweifel hier an einer Aufgabe. Ich versuche eine Verbindung zu einer Datenbank aufzubauen, die Datensätze per SQL Statement auszulesen und in eine Tabelle zu schreiben.

Angezeigt wird in der Datenbank immer nur der letzte Datensatz und ich habe keine Ahnung, wie ich alle in der Tabelle anzeigen lassen kann. Ziel ist es, per Checkbox nur jene (Kunden, Lieferanten) Daten anzeigen zu lassen, die auch wirklich angekreuzt sind. Diese Daten sollen dann in der Netbeans Tabelle angezeigt werden. Dieses Beispiel soll jedoch erstmal die Daten in eine x-beliebige Tabelle schreiben.

[Java]

public class WriteSQLinTable {


public static void main(String[] args) {

Connection con = null;
Statement stmt = null;
ResultSet rs = null;

Object[][] data;

JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


try {
con = DriverManager.getConnection("jdbc:derby://localhost:1527/KundenDB", "user", "test");
stmt = con.createStatement();
rs = stmt.executeQuery("Select * From Kunde");

while (rs.next()) {


String name = rs.getString("Name");
String vorname = rs.getString("Vorname");
System.out.println(name);

data = new Object[][] {{vorname, name}};
String[] titles = {"Name", "Vorname"} ;
f.add(new JScrollPane(new JTable(data, titles)));

}
} catch (SQLException ex) {
ex.printStackTrace();
}


f.pack();
f.setVisible(true);


};

}

[/Java]


Danke für eure Hilfe!
 
Zuletzt bearbeitet:

Fab1

Top Contributor
du erzeugt für jeden Datensatz ein neues Objekt von JScrollPane und JTable und fügst das dem JFrame hinzu.

Grundsätzlich werden Daten in einer Strutkur gesammelt und dann der Tabelle übergeben und nicht für jede Zeile eine neue Tabelle erstellt :)
Des Weiteren hat JFrame als Standard das BorderLayout. In deinem Fall klatscht du in die Mitte jedes mal eine neue Tabelle rein, die alte wird überschrieben.

Du solltest versuchen erstmal alle Daten von der RowSet in einer Struktur zu speichern, diese wird dann gebündet an EINE JTable übergeben. Dann hast du auch keine Probleme mehr mit dem Layout von JFrame.

siehe auch: How to Use Tables (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)
 

Exorcist

Mitglied
du erzeugt für jeden Datensatz ein neues Objekt von JScrollPane und JTable und fügst das dem JFrame hinzu.

Grundsätzlich werden Daten in einer Strutkur gesammelt und dann der Tabelle übergeben und nicht für jede Zeile eine neue Tabelle erstellt :)
Des Weiteren hat JFrame als Standard das BorderLayout. In deinem Fall klatscht du in die Mitte jedes mal eine neue Tabelle rein, die alte wird überschrieben.

Du solltest versuchen erstmal alle Daten von der RowSet in einer Struktur zu speichern, diese wird dann gebündet an EINE JTable übergeben. Dann hast du auch keine Probleme mehr mit dem Layout von JFrame.

siehe auch: How to Use Tables (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)

Damit ich einen Datenbankeintrag, den ich per EntityManager hinzufüge, in einer Tabelle sehen kann, muss ich also den Eintrag aus der Datenbank wieder rauslesen, als String zusammenfügen und dann der Tabelle hinzufügen?

Gibt es nicht eine Möglichkeit, den Inhalt der Datenbank mit der Tabelle zu aktualisieren, damit ich immer den aktuellen Zustand der Datenbank sehe?
 
Zuletzt bearbeitet:

Exorcist

Mitglied
Der Versuch, die Zeile der Tabelle hinzuzufügen ergibt mir folgender Fehler :

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: org.jdesktop.swingbinding.JTableBinding$BindingTableModel cannot be cast to javax.swing.table.DefaultTableModel

Der Code sieht so aus :

[Java]

private void kundeCheckBoxItemStateChanged(java.awt.event.ItemEvent evt) {
if (kundeCheckBox.isSelected()) {
System.out.println("Checkbox active");

try {
Connection con = DriverManager.getConnection("jdbc:derby://localhost:1527/BeispieldDB", "xxx", "pwd");
Statement stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT * FROM KUNDE");

Vector v = new Vector();

buffer.append("Vorname");

rs.last();
v.add(rs.getString("Name"));

System.out.println(v.toString());
((DefaultTableModel) kundeLieferantTable.getModel()).addRow(v);

} catch (SQLException ex) {
ex.printStackTrace();
}

}

[/Java]


Weiss jemand warum ich eine ClassCastException erhalte? Ist dies der richtige Weg, die Tabelle um den letzten Eintrag aktualisieren zu können?

Danke,
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
N batchupdate, es wird nur der letzte Eintrag eingetragen Datenbankprogrammierung 5
L Letzte, automatisch erzeugte, ID via SQL erhalten Datenbankprogrammierung 6
G letzte INSERT ID herrausfinden Datenbankprogrammierung 4
F SQLite Datensatz löschen Datenbankprogrammierung 13
B Mit Button einen Datensatz löschen Datenbankprogrammierung 2
S sql query, um bestimten datensatz zu finden Datenbankprogrammierung 33
D MySQL Neuen Datensatz mit "new" anlegen Datenbankprogrammierung 16
M Serienbrief aus Datensatz Datenbankprogrammierung 2
E Aufzählung liest nur ersten Datensatz Datenbankprogrammierung 14
S SQLite Selectanfrage lieft datensatz aber cursor ist leer Datenbankprogrammierung 2
M Designfrage zu Rows die sich auf einen Datensatz derselben Tabelle beziehen Datenbankprogrammierung 7
A MySQL Datensatz wird nicht richtig gelöscht Datenbankprogrammierung 6
L SQLite fügt nur den ersten Datensatz ein Datenbankprogrammierung 2
C Hibernate Datensatz löschen Datenbankprogrammierung 2
M Access Datensatz beinhaltet ESC-Zeichen Datenbankprogrammierung 3
U Nur den ersten Datensatz löschen wenn mehrere gleiche da sind Datenbankprogrammierung 2
C Gleichzeitiger Zugriff auf Datensatz Datenbankprogrammierung 5
Eldorado MySQL Hibernate - neuen Datensatz einfügen Datenbankprogrammierung 2
Java.getSkill() Datensatz / Tupel automatisch nach xy Tagen / Stunden löschen Datenbankprogrammierung 7
M Datensatz exklusiv öffnen Datenbankprogrammierung 5
M design issue: datensatz lange locken? Datenbankprogrammierung 10
M Datensatz aus Datenbank löschen Datenbankprogrammierung 6
T Theoriefrage : mehrere User vs gleichen Datensatz Datenbankprogrammierung 4
K Schnelle Methode um zu testen ob Datensatz existiert Datenbankprogrammierung 9
R datenbank - datensatz sucjen Datenbankprogrammierung 4
-MacNuke- Hibernate löscht jeden Datensatz einzeln? Datenbankprogrammierung 12
V Doppelten Datensatz vermeiden? Datenbankprogrammierung 7
S Überprüfen ob Datensatz existiert Datenbankprogrammierung 2
P SQL, nur jeder 5. Datensatz Datenbankprogrammierung 9
B Eingefügter Datensatz erneut abfragen. Datenbankprogrammierung 10
J Anzeige Button gibt immer nur 1. Datensatz aus DB aus Datenbankprogrammierung 8
M Letzter Datensatz mit auslesen(brauch kleinen Tipp) Datenbankprogrammierung 15
N SELECT: Datensatz sperren Datenbankprogrammierung 6
C vorheriegen oder letzten Datensatz Datenbankprogrammierung 2
K ResultSet: Erste Zeile ausgeben, Datensatz in String speiche Datenbankprogrammierung 13
W Nur ein Datensatz wird angezeigt, obwohl mehrere existieren Datenbankprogrammierung 7
C Datensatz einfügen und quittierung Datenbankprogrammierung 31
H letzter Datensatz wird nicht gefunden? Datenbankprogrammierung 6
F suche MySQl-Befehl um Datensatz an Tabellenende zu schreiben Datenbankprogrammierung 2
D JOIN COLUMN wird nicht genommen Datenbankprogrammierung 2
Maxim6394 JPA / EclipseLink - n:m Beziehung wird nicht aktualisiert Datenbankprogrammierung 0
Maxim6394 JPA 3.2 & SQLite - LocalDateTime wird falsch geladen Datenbankprogrammierung 1
D Ich möchte dass ich nachdem man den Kommentar geschrieben hat den Kommentar in den Tabelle Bestellübersicht geschbeichert wird klappt nicht bei mir Datenbankprogrammierung 2
Watsoon Treiber wird in Intellij nicht geladen Datenbankprogrammierung 2
Kirby.exe PreparedStatement wird nicht ausgeführt Datenbankprogrammierung 5
Z Datenbank Choicebox wird nicht befüllt Datenbankprogrammierung 15
N Sqlite DB mit Java wird auf Linuxsystem nicht gefunden Datenbankprogrammierung 9
J Netbeans 11 und Eclipse JPA 2.5 Entity wird nicht gefunden Datenbankprogrammierung 4
F H2 ObjectOptimisticLockingFailureException wird nicht geworfen Datenbankprogrammierung 0
S sun.jdbc.odbc.JdbcOdbcDriver wird nicht gefunden Datenbankprogrammierung 2
S MySQL Speicher wird nicht freigegeben bei Datenbankabfragen Datenbankprogrammierung 6
D MySQL Eingabe wird nicht übernommen... Datenbankprogrammierung 11
L Select Anweisung wird falsch interpretiert Datenbankprogrammierung 3
F sun.jdbc.odbc.jdbcodbcdriver wird nicht gefuden Datenbankprogrammierung 3
L JTable-DB: Letzter wert wird nicht angezeigt. Datenbankprogrammierung 0
K Datenbank wird bei Programmstart als .jar nicht mehr befüllt Datenbankprogrammierung 12
T MySQL Datetime wird auf Sekunden gerundet, soll es aber nicht Datenbankprogrammierung 2
N SQL-Statement Auslesen des Resultset wird immer langsamer Datenbankprogrammierung 6
P JSF + H2 + TomEE + Hibernate/JPA Datenbank wird nicht angelegt Datenbankprogrammierung 3
C Programm wird nach DB-Eintrag nicht weitergeführt Datenbankprogrammierung 5
M OutOfMemoryException obwohl nur 1 Eintrag abgefragt wird Datenbankprogrammierung 7
T f:event preRenderView Trigger wird nicht ausgeführt Datenbankprogrammierung 4
P Oracle Hibernate - Oracle-VarChar-Index wird nicht genutzt Datenbankprogrammierung 3
H Microsoft Access Treiber wird nicht gefunden Datenbankprogrammierung 9
S JPA, Primary Key wird nicht in relationstabelle erstellt Datenbankprogrammierung 3
B MySQL Hibernate (duplicate Entry) Beziehungstabelle wird nicht befüllt Datenbankprogrammierung 8
N batch-Update wird nicht durchgeführt Datenbankprogrammierung 2
M Rückgabewert aus DB wird falsch gelesen Datenbankprogrammierung 3
S Wie überprüfe ich ob die Instanz einer Connection gerade werwendet wird? Datenbankprogrammierung 4
C DB.Treiber wird nicht gefunden? Datenbankprogrammierung 5
E MySQL Treiber wird nicht geladen Datenbankprogrammierung 5
K org.gjt.mm.mysql.driver wird nicht gefunden Datenbankprogrammierung 11
T Unerwartete Datenbankausgabe bei "select now()" (es wird ein .0 angehängt) Datenbankprogrammierung 5
N Ubuntu 9.04 jdbc connector wird nicht gefunden Datenbankprogrammierung 5
K Wird auf den Eintrag referenziert? Datenbankprogrammierung 4
J SqlConnection Instanz wird immer grösser? Datenbankprogrammierung 2
I Sql Befehl wird nicht ausgeführt Datenbankprogrammierung 8
sparrow [Hibernate] Relation wird nicht gespeichert (Topic changed) Datenbankprogrammierung 11
A REVOKE wird nicht durchgeführt Datenbankprogrammierung 2
M Treiber wird nicht gefunden Datenbankprogrammierung 5
P Datenbank wird nicht geschlossen - problematisch? Datenbankprogrammierung 2
N mysql.jdbc treiber wird nicht gefunden Datenbankprogrammierung 2
D Neuer Query wird nicht erkannt Datenbankprogrammierung 10
S JOptionPane wird nicht angezeigt Datenbankprogrammierung 5
ven000m SQL Querry wird nicht abgesetzt, da vorher underlined! Datenbankprogrammierung 8
D "Distinct" wird nicht ausgeführt Datenbankprogrammierung 8
H mySql Connector/J Treiber wird nicht gefunden Datenbankprogrammierung 2
C SQLException wenn String auf VARCHAR geschrieben wird Datenbankprogrammierung 10
H JDBC-Treiber wird nicht geladen Datenbankprogrammierung 2
L SQL-Problem: Insert wird nicht ausgeführt Datenbankprogrammierung 5
N Cloudscape wird opensource :) Datenbankprogrammierung 3
X Verbindung zu DB wird zurückgewiesen Datenbankprogrammierung 8

Ähnliche Java Themen

Neue Themen


Oben