サーブレット技術を備えたTomcat 8にWeb APPがあります。DB接続の場合、静的データソースを保持するサーブレットリスナーと、getConnectionを実行する静的メソッドがあります。servletListener.getConnection(); に呼び出すことができるサーベットですべて正常に動作します。
しかし、クラス内ではそれを呼び出すことはできません。
インターネットでこのクラスを見つけました:
public final class DBUtilClass {
private static DataSource datasource;
static {
Context initContext;
try {
initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
datasource = (DataSource) envContext.lookup("jdbc/testdb");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return datasource.getConnection();
}
すべてのクラスから呼び出せるので気に入っています。それが最善の方法かどうかはわかりません。
他のアプローチ?推奨事項はありますか?