1
0
Fork 0
SVEN/Kasse/src/Helper.java

99 lines
2.7 KiB
Java

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;
}
}