The_Answer1985
Erfahrenes Mitglied
Hallo alle miteinander,
ich habe eine JTable, die mit Daten aus einer DB gefüllt wird. Das hab ich nach langer Suche mit Hilfe folgendes Threads geschafft.
http://www.tutorials.de/forum/java/222502-datenbank-auslesen-und-werte-jtable-ueberfuehren.html
Meine Tabelle nutzt das DefaultTableModel.
Wenn ich Änderungen an den Daten der Tabelle vornehme, sollen diese natürlich auch in
die DB übernommen werden.
Nur, wie mache ich das?
Muss ich dazu dann doch ein eigenes TableModel implementieren?
Oder ließe es sich in meinen Code integrieren?
Diese Klasse ist für den DB-Zugriff zuständig und erstellt zudem die Tabelle
In einem Dialog wird diese Tabelle dann eingebunden und soll demnach editierbar sein.
Danke für jeden Post.
Liebe Grüße
ich habe eine JTable, die mit Daten aus einer DB gefüllt wird. Das hab ich nach langer Suche mit Hilfe folgendes Threads geschafft.
http://www.tutorials.de/forum/java/222502-datenbank-auslesen-und-werte-jtable-ueberfuehren.html
Meine Tabelle nutzt das DefaultTableModel.
Wenn ich Änderungen an den Daten der Tabelle vornehme, sollen diese natürlich auch in
die DB übernommen werden.
Nur, wie mache ich das?
Muss ich dazu dann doch ein eigenes TableModel implementieren?
Oder ließe es sich in meinen Code integrieren?
Diese Klasse ist für den DB-Zugriff zuständig und erstellt zudem die Tabelle
Code:
final Vector<String> bezeichnung = new Vector<String>() {
{
add("Device Nr");
add("Modul/Bundle");
add("Benutzername");
add("Passwort");
add("Betriebssystem");
add("Installationsdatum");
}
};
javax.swing.JTable meineTabelle;
DefaultTableModel meinModel;
public DBZugriffCADDetails() throws SQLException{
meinModel = new DefaultTableModel(1, 6);
meinModel.setColumnIdentifiers(bezeichnung);
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
connection = DriverManager.getConnection("jdbc:odbc:odbc2access");
}
catch (InstantiationException ex1) {
System.out.println("Es ist ein Fehler aufgetreten: " + ex1.getMessage());
}
catch (IllegalAccessException ex2) {
System.out.println("Es ist ein Fehler aufgetreten: " + ex2.getMessage());
}
catch (ClassNotFoundException ex3) {
System.out.println("Es ist ein Fehler aufgetreten: " + ex3.getMessage());
}
catch (SQLException ex4) {
ex4.printStackTrace();
}
}
public javax.swing.JTable tabelleFuellen(){
meineTabelle = new javax.swing.JTable(meinModel);
meineTabelle.setModel(meinModel);
return meineTabelle;
}
public void aktualisieren(String kdnr){
meinModel.setDataVector(detailLesen("SELECT Kundennummer,Module,DongleNr,Benutzername,Passwort,BSLokal,Installationsdatum FROM MarbaCADDetailsVersuch WHERE Kundennummer = " + kdnr + ";"), bezeichnung);
meinModel.fireTableDataChanged();
}
public Vector<Vector<String>> detailLesen(String befehl){
statement = null;
result = null;
try
{
statement = connection.createStatement();
result = statement.executeQuery(befehl);
if(result != null){
Vector<Vector<String>> results = new Vector<Vector<String>>();
while(result.next()){
Vector<String> detail = new Vector<String>();
detail.add(result.getString(3));
detail.add(result.getString(2));
detail.add(result.getString(4));
detail.add(result.getString(5));
detail.add(result.getString(6));
detail.add(result.getString(7));
results.add(detail);
meinModel.setDataVector(results, bezeichnung);
}
return results;
}
}
catch (SQLException ex1)
{
System.out.println("Es ist ein Fehler aufgetreten: " + ex1.getMessage());
}
return null;
In einem Dialog wird diese Tabelle dann eingebunden und soll demnach editierbar sein.
Danke für jeden Post.
Liebe Grüße