import java.sql.*; import java.util.concurrent.SynchronousQueue; import javax.swing.table.DefaultTableModel; public class Helper { Connection con; Statement stmt; ResultSet rs; ResultSetMetaData rsmd; //baut verbindung auf public void connect() { try { con = DriverManager.getConnection("jdbc:mysql://102-012/", "intabi19", "hallo"); System.out.println("connected"); } catch (SQLException e) { System.out.println(e); } } //baut verbindung auf zur Auswahl public void connect(String databaseName) { try { con = DriverManager.getConnection("jdbc:mysql://102-012/"+ databaseName, "intabi19", "hallo"); System.out.println("connected"); } catch (SQLException e) { System.out.println(e); } } public void listTables() { try { rs = con.getMetaData().getTables(null, null, null, null); while (rs.next()) { System.out.println(rs.getString(3)); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void passSQL(String sql) { try { stmt = con.createStatement(); stmt.execute(sql); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public DefaultTableModel getTableModel(String sqlString) { DefaultTableModel model = new DefaultTableModel(); try { // wichtig nicht vergessen ohne diese Aussage gibts nen Fehler(Nullpointer) stmt = con.createStatement(); // schickt SQL Abfrage ab und speichert im Objekt rs rs = stmt.executeQuery(sqlString); // liest MetaDaten aus und speichert im Objekt rsmd rsmd = rs.getMetaData(); // Breite der Tabelle int colCount = rsmd.getColumnCount(); // Ein String Array hat die Länge der Breite der Tabelle String colData[] = new String[colCount]; // Läuft einmal die Breite ab und fügt die Spaltennamen zum Array hinzu for (int i = 1; i <= colCount; i++) { colData[i - 1] = rsmd.getColumnLabel(i); } // setzt die Spaltennamen im DefaultTableModel model.setColumnIdentifiers(colData); // Ein String Array hat die Länge der Breite der Tabelle String rowData[] = new String[colCount]; //Läuft solange es noch weitere Zeilen im rs gibt while (rs.next()) { // Läuft jede Spalte ab for (int i = 0; i < colCount; i++) { //trägt Werte der spalte in den Array ein überschreibt vorherige Werte rowData[i] = rs.getString(i+1); } // fügt komplette Zeile dem DefaultTableModel hinzu model.addRow(rowData); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } //gibt fertiges DefaultTableModel zurück return model; } }