2009-05-28 3 views
1

私はデータベースインタラクション層にibatisを使ってSpring MVCアプリケーションを開発しています。私はクラスパス内のプロパティファイル(または春のxml設定を介して)を介してデータベースの名前を設定できるようにしたいので、特定のアプリケーションのためにオンザフライでデータベースを変更することができ、パラメータを設定することによって変更することができますアプリケーションを再デプロイします。ibatisでグローバルプロパティを渡す方法

私が探しているのは、既存のデータベースにデータベース名を設定できることです。私は、DB1と呼ばれるデータベース(user、user_qa、およびuser_dev)システムを持っているとします。

SELECT * FROM user.Logins 

私は

SELECT * FROM $database.user$.Logins 

にしてくださいだから私はdatabase.userプロパティを変更し、代わりにアプリケーションを再デプロイすることができます:私はその代わりにやってのSQLをパラメータ化できるようにしたいのですが私はデータベースの名前を変更するたびに大量のSQL文を書き直しました。

+0

Ibatisとはまったく関係がありません。これはSpringの簡単な質問です。 – Gandalf

+0

私が主に後にしているのは、データベース構成の設定ではありません。しかし、実際にパラメータを設定するsqlmapレベルでは、$ database.users $ .user_rolesと$ database.lists $ .someListDBを使用できます。ここで$ database.users $と$ database.lists $は.propertiesファイルのパラメータです。そのように私はdev db、qa db、production dbを持つことができ、それに応じてプロパティファイルを変更することができます。私は私の質問を更新すると思う... –

答えて

0

春にはかなりシンプルです。あなたは[database.properties]基本的なconfファイルを持っていると言う:

jdbc.username = user 
jdbc.host = mydbserver.com 

その後、あなたの春の設定xmlファイルで:

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
<property name="location"> 
<value>classpath:database.properties</value> 
</property> 
</bean> 

今、あなたはこれらの変数は、設定ファイルに名前を置き換えたい場所:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
<property name="host"><value>${jdbc.host}</value></property> 
<property name="username"><value>${jdbc.username}</value></property> 
</bean> 
関連する問題