[Seasar-user:3344] 接続先DBを動的に変更する

Matsukaze Takashi [E-MAIL ADDRESS DELETED]
2006年 3月 9日 (木) 03:34:42 JST


松風と申します。

j2ee.diconで定義しているxaDataSourceのdriverClassNameや、URLなどの値
を、他外部ファイルの値にプログラム内で置き換え、変更後はその変更した
値でDBにアクセスすることは可能でしょうか?

例)
 ・j2ee.diconファイルの情報
   driverClassName =oracle.jdbc.driver.OracleDriver
   URL = jdbc:oracle:thin:@xxx:1521:yyy
     :
    
      ↓ 動的に、外部ファイルの内容に置き換えたい。
    
 ・外部ファイルの情報
      driverClassName =org.postgres.jdbc.driver.PostgresDriver
     URL=jdbc:postgresql://localhost:5432:yyy

j2ee.dicon 一部抜粋 ---------

<component name="xaDataSource" class="org.seasar.extension.dbcp.impl.
XADataSourceImpl">        
	<property name="driverClassName">
          "oracle.jdbc.driver.OracleDriver"        
       </property>
       <property name="URL">            
          "jdbc:oracle:thin:@xxx:1521:yyy"        
       </property>
       <property name="user">
         "aaa"
       </property>  
       <property name="password">
         "bbb"
       </property>
</component>

-----------------------------

なぜ上記のような質問をしたかと言いますと、現在「S2DAOを使用しDBにア
クセスするサーバ常駐プログラム」を開発しており、設定ファイルなどを使用
して動的に接続先DBを変更できる仕様を検討しているためです。

以下URLに記載されているように、DAOクラスにてprivate変数にDataSource
を定義して、コネクション取得時にURLなどの情報を変更することもできそ
うですが、なるべくDAO実装クラスを書きたくありません。
(DAOインタフェースのみで対処したい)

http://www.seasar.org/dbcp.html





Seasar-user メーリングリストの案内