Morgen,
versuche schon seit längerer Zeit mit Java ein Abfrage an eine Access DB zu starten. Das Problem hierbei ist, dass die Abfrage gemäß der Eingabe geschehen soll. So soll, wenn SOAD eingegeben wird, auch die Abfrage für SOAD angezeigt werden. Möchte nicht 24x die entscheidenen Klasse aufrufen.
Der Quellcode:
versuche schon seit längerer Zeit mit Java ein Abfrage an eine Access DB zu starten. Das Problem hierbei ist, dass die Abfrage gemäß der Eingabe geschehen soll. So soll, wenn SOAD eingegeben wird, auch die Abfrage für SOAD angezeigt werden. Möchte nicht 24x die entscheidenen Klasse aufrufen.
Der Quellcode:
Code:
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.Vector;
import javax.swing.JTable;
public class Hauptfenster extends javax.swing.JFrame {
/** Konstruktor: Hauptfenster erzeugen */
public Hauptfenster() {
initComponents();
aktualisiereTabelle(jTextField1.getText());
}
/** Tabelleninhalte holen und Tabelle erzeugen **/
private void aktualisiereTabelle(String rein) {
Vector columnNames = new Vector();
Vector data = new Vector();
try{
//Abfrage definieren
String query = "SELECT * FROM Hier soll dann die Abfrage auf dem TextFeld eingebunden werden;";
//Datenbankverbindung herstellen
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection( "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/db/Musikdb.mdb","","" );
System.out.println("Connection Successful ");
Statement stmt = con.createStatement();
ResultSet rst = stmt.executeQuery(query);
ResultSetMetaData md = rst.getMetaData();
int columns = md.getColumnCount();
// Spaltennamen ermitteln
for (int i = 1; i <= columns; i++) {
String colname=md.getColumnName(i);
columnNames.addElement( colname );
}
// Zeileninhalt ermitteln
while (rst.next()) {
Vector row = new Vector(columns);
for (int i = 1; i <= columns; i++) {
row.addElement( rst.getObject(i) );
}
data.addElement( row );
}
rst.close();
stmt.close();
} catch(Exception e) {
e.printStackTrace();
}
// Tabelle erzeugen
JTable table = new JTable(data, columnNames);
scrollTabelle.setViewportView(table);
}
private void initComponents() {
scrollTabelle = new javax.swing.JScrollPane();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().add(scrollTabelle, java.awt.BorderLayout.CENTER);
java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-800)/2, (screenSize.height-200)/2, 800, 200);
}
/**
* MAIN-Methode
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Hauptfenster().setVisible(true);
}
});
}
// globale Variablendeklaration
private javax.swing.JScrollPane scrollTabelle;
private javax.swing.jTextField jTextField1;
}
Zuletzt bearbeitet: