Hallo Zusammen,
ich kann mit Hilfe von MetaDaten die Tabellen aus der MySql DB in eine JTable einlesen.
private void showTableContent(){
if (con != null && dbmd != null){
try{
//Statement Basisschnittstelle für alle SQL-Anweisungsformen
Statement stmt = con.createStatement();
String db = (String)this.DatabasesComboBox.getSelectedItem();
if (db == null || db == "")
return;
//execute um beliebige "unbekannte" SQL-Anweisungen an die Datenbank zu schicken
stmt.execute("USE " + db);
String tbl = (String)this.TablesComboBox.getSelectedItem();
if (tbl == null || tbl == "")
return;
//Select Anweisung durch Statement-Methode executeQuery
ResultSet rs = stmt.executeQuery("SELECT * FROM " + tbl);
//DefaultTableModel wird hier aufgefrischt
tblDataModel = new DefaultTableModel();
Vector clmHeader = new Vector();
Vector dataVector = new Vector();
//Spalten auslesen
ResultSetMetaData rsmd = rs.getMetaData();
int clmCnt = rsmd.getColumnCount();
for(int i = 1; i <= clmCnt;i++)
//Aus MetaData können wir über getColumnName die SpaltenNamen rausholen
clmHeader.addElement(rsmd.getColumnName(i));
//Zeilen werden ausgelesen
while(rs.next()){
Vector rowVector = new Vector();
for(int i = 1; i <= clmCnt; i++){
rowVector.addElement(rs.getString(i));
}
dataVector.addElement(rowVector);
}
tblDataModel.setDataVector(dataVector,clmHeader);
this.jTable1.setModel(tblDataModel);
this.jTable1.updateUI();
// System.out.println("finished");
}catch(SQLException sqle){
sqle.printStackTrace();
}
}
}
Nun bei Einsicht der Tabelle kann ich die Werte in den einzelnen Zellen Ändern. In dem Augenblick soll das Programm den JTable mit aktuellen Werten in die DB von MySql wieder zurück schreiben. Wie ist das möglich. Ich habe mit Vektoren gearbeitet.
Bitte um Rat.
Gruss
ME34 :suspekt:
ich kann mit Hilfe von MetaDaten die Tabellen aus der MySql DB in eine JTable einlesen.
private void showTableContent(){
if (con != null && dbmd != null){
try{
//Statement Basisschnittstelle für alle SQL-Anweisungsformen
Statement stmt = con.createStatement();
String db = (String)this.DatabasesComboBox.getSelectedItem();
if (db == null || db == "")
return;
//execute um beliebige "unbekannte" SQL-Anweisungen an die Datenbank zu schicken
stmt.execute("USE " + db);
String tbl = (String)this.TablesComboBox.getSelectedItem();
if (tbl == null || tbl == "")
return;
//Select Anweisung durch Statement-Methode executeQuery
ResultSet rs = stmt.executeQuery("SELECT * FROM " + tbl);
//DefaultTableModel wird hier aufgefrischt
tblDataModel = new DefaultTableModel();
Vector clmHeader = new Vector();
Vector dataVector = new Vector();
//Spalten auslesen
ResultSetMetaData rsmd = rs.getMetaData();
int clmCnt = rsmd.getColumnCount();
for(int i = 1; i <= clmCnt;i++)
//Aus MetaData können wir über getColumnName die SpaltenNamen rausholen
clmHeader.addElement(rsmd.getColumnName(i));
//Zeilen werden ausgelesen
while(rs.next()){
Vector rowVector = new Vector();
for(int i = 1; i <= clmCnt; i++){
rowVector.addElement(rs.getString(i));
}
dataVector.addElement(rowVector);
}
tblDataModel.setDataVector(dataVector,clmHeader);
this.jTable1.setModel(tblDataModel);
this.jTable1.updateUI();
// System.out.println("finished");
}catch(SQLException sqle){
sqle.printStackTrace();
}
}
}
Nun bei Einsicht der Tabelle kann ich die Werte in den einzelnen Zellen Ändern. In dem Augenblick soll das Programm den JTable mit aktuellen Werten in die DB von MySql wieder zurück schreiben. Wie ist das möglich. Ich habe mit Vektoren gearbeitet.
Bitte um Rat.
Gruss
ME34 :suspekt: