G
Guest
Gast
Hi zusammen,
ich habe folgendes Problem, wobei ich nicht konkret weiß wie ich es lösen kann:
Ich möchte auf EJB-Ebene eine Connection aus dem ConnectionPool erhalten. Dabei sollen die dafür benötigten Konfigurationen wie URL, UserName, Passwort und DriverName aus einer Properties-Datei verwendet werden. Hierfür habe ich auch bereits eine solche Datei erstellt. Ebenso die Klasse DbProperties:
Nun habe ich eine Helper-Klasse geschrieben, die sich um die Datenbankaktionen wie SELECT, INSERT, UPDATE etc. kümmert. Hier die select-Methode:
Wenn ich das richtig verstanden habe, hole ich mir aus der DataSource eine Connection aus dem ConnectionPool, mit der ich dann Transaktionen durchführen kann.
Meine Frage lautet daher: Wie und wann kann ich die spezifischen Konfigurationen in dem ConnectionPool setzen?
ich habe folgendes Problem, wobei ich nicht konkret weiß wie ich es lösen kann:
Ich möchte auf EJB-Ebene eine Connection aus dem ConnectionPool erhalten. Dabei sollen die dafür benötigten Konfigurationen wie URL, UserName, Passwort und DriverName aus einer Properties-Datei verwendet werden. Hierfür habe ich auch bereits eine solche Datei erstellt. Ebenso die Klasse DbProperties:
Code:
public final String driver;
public final String url;
public final String user;
public final String password;
public DbProperties(String filename) {
Properties props = new Properties();
try {
props.load(new FileInputStream(filename));
this.driver = props.getProperty("db.driver", "");
this.url = props.getProperty("db.url", "");
this.user = props.getProperty("db.user", "");
this.password = props.getProperty("db.password", "");
}
catch (Exception e) {
throw new RuntimeException(e);
}
}
Nun habe ich eine Helper-Klasse geschrieben, die sich um die Datenbankaktionen wie SELECT, INSERT, UPDATE etc. kümmert. Hier die select-Methode:
Code:
public <T> List<T> getResultList(DataSource ds, JdbcStatement statement, JdbcRowProcessor<T> processor) {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
con = ds.getConnection();
ps = this.createPreparedStatement(con, statement);
rs = ps.executeQuery();
List<T> list = new ArrayList<T>();
while (rs.next()) {
T obj = processor.process(rs);
if (obj != null)
list.add(obj);
}
return list;
}
catch (SQLException e) {
throw new RuntimeException(e);
}
finally {
close(con, ps, rs);
}
}
Wenn ich das richtig verstanden habe, hole ich mir aus der DataSource eine Connection aus dem ConnectionPool, mit der ich dann Transaktionen durchführen kann.
Meine Frage lautet daher: Wie und wann kann ich die spezifischen Konfigurationen in dem ConnectionPool setzen?