U
unwissend12345
Gast
Hallo,
ich möchte gerne aus einer Datenbank Datensätze in eine jTable einlesen und habe mir dafür 3 klassen geschrieben:
Für die Datenbankverbindung:
und die gui:
Das erste Einlesen der Datensätze klappt auch super, aber was wenn sich die Daten in der Datenbank ändern? Dafür möchte ich einen "refresh" button implementieren.
Die Frage, was muss in den Button rein?
ich habs schon mit
ausprobiert, aber nicht passiert 
Hoffe ihr habt die richtigen Tips für mich
) danke für Eure Hilfe
ich möchte gerne aus einer Datenbank Datensätze in eine jTable einlesen und habe mir dafür 3 klassen geschrieben:
Java:
// TABLEMODEL
public class DataTableModel extends AbstractTableModel{
private String[] colHeads = {"Nr","Anz","Beschreibung"};
private Vector<Vector<String>> data = getvector();
private Vector<Vector<String>> getvector() {
Vector<Vector<String>> data = null;
try {
data = dbase.getInstance().getEmployee();
} catch (Exception ex) {
Logger.getLogger(DataTableModel.class.getName()).log(Level.SEVERE, null, ex);
}
return data;
}
public int getRowCount() {
return data.size();
}
public int getColumnCount() {
return colHeads.length;
}
public Object getValueAt(int rowIndex, int columnIndex) {
Vector temp = data.get(rowIndex);
Object temp2 = temp.get(columnIndex);
return temp2;
}
@Override
public String getColumnName(int column) {
return colHeads[column];
}
}
Für die Datenbankverbindung:
Java:
public class dbase {
public Connection dbConnection()throws Exception
{
String url = "jdbc:mysql://"+hostname+":"+port+"/"+dbname;
Class.forName("com.mysql.jdbc.Driver").newInstance();
return DriverManager.getConnection(url, user, password);
}
public Vector getEmployee()throws Exception
{
Vector<Vector<String>> employeeVector = new Vector<Vector<String>>();
Connection conn = dbConnection();
PreparedStatement pre = conn.prepareStatement("select * from adresse");
ResultSet rs = pre.executeQuery();
while(rs.next())
{
Vector<String> employee = new Vector<String>();
employee.add(rs.getString(1)); //Empid
employee.add(rs.getString(2)); //name
employee.add(rs.getString(3)); //position
employeeVector.add(employee);
}
/*Close the connection after use (MUST)*/
if(conn!=null)
conn.close();
return employeeVector;
}
}
und die gui:
Java:
public class gui extends javax.swing.JFrame {
private DataTableModel modelTableData;
public gui() {
initComponents();
this.modelTableData = new DataTableModel();
this.jTable1.setModel(modelTableData);
Das erste Einlesen der Datensätze klappt auch super, aber was wenn sich die Daten in der Datenbank ändern? Dafür möchte ich einen "refresh" button implementieren.
Die Frage, was muss in den Button rein?
ich habs schon mit
Java:
modelTableData.fireTableDataChanged();
jTable1.revalidate();
jTable1.repaint();
Hoffe ihr habt die richtigen Tips für mich