Hallo allerseits.. ich suche gerade nach einem Muster, wie man mit Objekten der Klassen
Connection, ResultSet, Statement, ... umgeht.
Die Aufgaben: Verb. Aufbauen -> Statements ausfüren -> alles Schliessen sollten sich in einem try/catch-Block befinden.
Zur Zeit bin ich bei folgendem Muster:
wichtig ist mir die Korrektheit bzw. Sicherheit, dass nach dem Ende des finally-Blocks, egal welche Fehler aufgetretten sind, auf jeden Fall keine Verbindungen oder Cursors die Datenbank belasten.
wie macht ihr das? Kann jemand mein Muster beurteilen und evtl korrigieren?
wäre dankbar für jede Antwort.
Connection, ResultSet, Statement, ... umgeht.
Die Aufgaben: Verb. Aufbauen -> Statements ausfüren -> alles Schliessen sollten sich in einem try/catch-Block befinden.
Zur Zeit bin ich bei folgendem Muster:
Code:
Connection conn = null;
ResultSet rs = null;
Statement st = null;
try {
Class.forName("z.B. -> com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("irgendein Connection-String");
st = conn.createStatement();
rs = st.executeQuery("irgendein select-Statement");
/**
* ... Bearbeitung der Sachen ...
*/
} catch (Throwable e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (st != null) {
st.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException sqle) {
sqle.printStackTrace();
}
}
wichtig ist mir die Korrektheit bzw. Sicherheit, dass nach dem Ende des finally-Blocks, egal welche Fehler aufgetretten sind, auf jeden Fall keine Verbindungen oder Cursors die Datenbank belasten.
wie macht ihr das? Kann jemand mein Muster beurteilen und evtl korrigieren?
wäre dankbar für jede Antwort.