Ich möchte meinen Datenbankverbindungscode und meinen Resultset-Code trennen. Die einzige Möglichkeit, dies zu tun, ist nicht ideal, weil es 2 Verbindungspools erstellen würde. Codeausschnitt:Separate JDBC-Verbindung und ResultSet-Code
public void connectivity() throws SQLException{
try{
Class.forName(driver);
Connection c = DriverManager.getConnection(url, user, pass);
Statement st = c.createStatement();
}
catch(ClassNotFoundException e){
e.printStackTrace();
}
finally{
try{
c.close();
}
catch(Exception e){
e.printStackTrace();
}
}
}
public Statement getStatement() throws SQLException{
Class.forName(driver);
Connection c = DriverManager.getConnection(url, user, pass);
Statement st = c.createStatement();
return st;
}
Und dann in einer anderen Klasse I haben:
Connectivity connect = new Connectivity();
Statement st = connect.getStatement();
ResultSet r = st.executeQuery(sql);
ich dies tun, weil ich Zugang zu Statement
benötigen, um die ResultSet
Arbeit zu machen. Wie kann ich den Connectivity-Code und den Resultset-Code abstrahieren, um sie in 2 verschiedenen Modulen zu haben, ohne 2 Verbindungspools erstellen zu müssen?
Vielen Dank im Voraus.
Warum? Du solltest versuchen, sie zu kombinieren. Ermitteln Sie die Verbindung, die Anweisung und die Ergebnismenge in drei aufeinander folgenden geschachtelten Try-with-Resources-Anweisungen. Hinweis: Die Zeile "Class.forName()" wurde seit 2007 nicht mehr benötigt. – EJP
Ich habe einige Ergebnismengen zu erfassen, und ich beabsichtige, mit jedem dieser Ergebnissätze etwas zu tun. Stattdessen möchte ich meinen Resultset-Code in einer DAO-Klasse platzieren. –