2011-01-06 6 views
0

プールされたデータソースを持つDAOファクトリのコンフィグレーションに関するアドバイスを少し受けました。 (抽象ファクトリからの)JDBC DAOファクトリとプールされたデータソースがアプリケーションサーバによって設定され、管理されているとします。 Glassfishプールされたデータソースを持つDAOファクトリのコンフィグレーション

ファクトリが初めて作成されるとき(シングルトンパターン)、プールされたデータソースのJNDIルックアップを実行します。 JDBC DAOファクトリでプールされたデータソースを設定するプロパティファイルから取得します。

具体的なDAOをインスタンス化して返すと、データベースへの接続を取得できるようにdatasourceへの参照が渡されますか?

答えて

0

基本的に私はDAOという基本クラスのフィールドとしてそのデータソースをカプセル化しました。 DAOのコンストラクタでは、必要な接続のJNDI名を渡します。

public DAO(String jndiName) throws NamingException { 
    ds = DataSourceFactory.getInstance().lookup(jndiName); 
} 

すべての具体的なクラスでは、DAOから単純に拡張し、必要に応じてデータソースを使用できます。

public concreteDAO() throws NamingException { 
    super("Some JNDI Name That this DAO should know"); 
} 

同じDAOクラスは、黙ったResultSet、文との接続を閉じ、クリーンアップの方法のようないくつかの他のユーティリティメソッドがあります。ですから、私はすべてのメソッドのfinally節にこれを追加しなければなりません。

関連する問題