G
Guest
Gast
Hallo Leute, die Frage am Schluss
ich schreibe ein umfangreicheres Programm und habe keine Informatikerausbildung. Daher weiss ich nicht, ob die Art und Weise wie ich den Zugriff auf meine Interbase-Datenbank handle grundsätzlich richtig ist.
So habe ich es gemacht:
1) Verbindung zur Datenbank in einer eigenen Klasse.
2) In der static void main so eine Art globale Variablen angelegt.
3) Überall dort wo ich eine Datenbankverbindung benötige wie folgt aufgerufen.
-MainProgram heißt die Klasse in der die static void main steht.
Das wäre mein Ansatz. Indem ich aber nirgendwo schliesse (weder rs, noch stmt's, noch con's) wirft es mir von Zeit zu Zeit Connection errors.
Daher die Frage: Ist der Ansatz richtig?????
Danke für eure Hilfe
Juergen
ich schreibe ein umfangreicheres Programm und habe keine Informatikerausbildung. Daher weiss ich nicht, ob die Art und Weise wie ich den Zugriff auf meine Interbase-Datenbank handle grundsätzlich richtig ist.
So habe ich es gemacht:
1) Verbindung zur Datenbank in einer eigenen Klasse.
Code:
import java.sql.*;
import javax.swing.JOptionPane;
public class DBANSCon {
static final String DRIVER = "interbase.interclient.Driver";
static final String URL = "jdbc:interbase://localhost/C:/Dokumente und Einstellungen/GDB/";
Connection con;
Statement stmt, stmt1, stmt2, stmt3;
DatabaseMetaData dmd;
ResultSet rs, rs1, rs2;
public DBANSCon() {
try {
DBEntry();
}
catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
catch (SQLException ex) {
ex.printStackTrace();
}
}
private void DBEntry() throws ClassNotFoundException, SQLException {
Class.forName(DRIVER);
con = DriverManager.getConnection(URL + "DBGMUNDENVORCHDORF.gdb", "sysdba", "masterkey");
con.setAutoCommit(true);
if (con.isClosed() == true) {
int selection = JOptionPane.showConfirmDialog(null, "Kein Datenbankzugriff möglich! ",
"Information", JOptionPane.DEFAULT_OPTION,
JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
stmt = con.createStatement();
stmt1 = con.createStatement();
stmt2 = con.createStatement();
stmt3 = con.createStatement();
dmd = con.getMetaData();
}
}
2) In der static void main so eine Art globale Variablen angelegt.
Code:
DBANSCon = new DBANSCon();
3) Überall dort wo ich eine Datenbankverbindung benötige wie folgt aufgerufen.
Code:
MainProgram.DBANSCon.rs = MainProgram.DBANSCon.stmt.executeQuery("selectabfrage");
-MainProgram heißt die Klasse in der die static void main steht.
Das wäre mein Ansatz. Indem ich aber nirgendwo schliesse (weder rs, noch stmt's, noch con's) wirft es mir von Zeit zu Zeit Connection errors.
Daher die Frage: Ist der Ansatz richtig?????
Danke für eure Hilfe
Juergen