Swing-Formular-Datenbank-Verbindung

Ich bin neu in Java und NetBeans, und ich bin versucht, ein Formular erstellen, dass

  1. verbindet zu einer Datenbank mit JDBC Verbindung
  2. liest Informationen aus sieben Spalten und zeigt Sie auf einer jTable-Komponente bereits auf dem Formular

Ich schon so arbeiten. Ich versuche nun, meinen code zu optimieren und eine bessere Nutzung der Architektur zu trennen der Verbindung zur Datenbank und das user interface (UI Formen) - code, so dass ich eine separate Klasse zu führen und dann rufen Sie einfach die Methode aus dieser Klasse in der code hinter der Schaltfläche. Das problem mit NetBeans und Formen ist, dass ich nicht weiß, wo diese Klasse instanziieren und so. Unten ist ein bewältigen der Klasse, die habe ich erstellt, um führen Sie das JDBC-Verbindung

public class ConnectionManager {
private static String url = "jdbc:mysql://localhost:3306/prototypeeop";
private static String driverName = "com.mysql.jdbc.Driver";
private static String username = "root";
private static String password = "triala";
private static Connection con;
private static String url;

public static Connection getConnection() {
    try {
        Class.forName(driverName);
        try {
            con = DriverManager.getConnection(url, username, password);
        } catch (SQLException ex) {
            //log an exception. fro example:
            System.out.println("Failed to create the database connection.");
        }
    } catch (ClassNotFoundException ex) {
        //log an exception. for example:
        System.out.println("Driver not found.");
    }
    return con;
}

}

Dies ist bereits ein .java - Datei. Ich habe eine JForm, und ich brauche, um diese Methode aufzurufen hinter der Schaltfläche. Hier ist, wie ich es in der form derzeit ohne Verwendung einer connection-Klasse:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    DefaultTableModel model=(DefaultTableModel)jTable1.getModel();
    model.setRowCount(0);
    String sql="Select * from eopdata";
    try
    {
        Class.forName("com.mysql.jdbc.Driver");
        Connection con=(Connection)DriverManager.getConnection("jdbc:mysql://localhost:3306/prototypeeop","root","jakamuga");
        Statement stmt=con.createStatement();
        ResultSet rs=stmt.executeQuery(sql);
        while(rs.next())
        {
            String Year=rs.getString("Year");
            String Month=rs.getString("Month");
            String Day=rs.getString("Day");
            String MJD=rs.getString("MJD");
            Double xarcsec=rs.getDouble("xarcsec");
            Double yarcsec=rs.getDouble("yarcsec");
            Double UT1UTCsec=rs.getDouble("UT1UTCsec");
            model.addRow(new Object[] { Year, Month, Day, MJD,xarcsec,yarcsec,UT1UTCsec});
        }
    }
    catch(Exception e) {
        JOptionPane.showMessageDialog(this, e.getMessage());
    }

Wie kann ich die Klasse verwenden, statt hart codieren, in der Verbindung? Ich habe bereits die Klasse aber wo muss ich den instanziert. Mache ich es in der main-form oder mache ich es in der actionevent-code mit dem folgenden code?

private Connection con = null;
private Statement stmt = null;
private ResultSet rs = null;

con = ConnectionManager.getConnection();
stmt = con.createStatement();
rs = stmt.executeQuery(sql);
InformationsquelleAutor rambokayambo | 2012-06-08
Schreibe einen Kommentar