[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 メーリングリストの案内