我正在使用ibatis为数据库交互层开发Spring MVC应用程序。我希望能够通过类路径中的属性文件(或通过spring xml配置)设置数据库的名称,这样我就可以动态更改某个应用程序的数据库,并可以通过设置参数来更改并重新部署该应用程序。
我正在寻找的是能够在现有数据库上设置数据库名称。假设我有一个名为DB1的系统,其中包含数据库:user,user_qa和user_dev。我希望能够参数化SQL,而不是做:
SELECT * FROM user.Logins
我会做
SELECT * FROM $database.user$.Logins
所以我可以更改database.user属性并重新部署应用程序,而不是每次更改数据库名称时重写大量SQL语句。
答案 0 :(得分:0)
在Spring中非常简单。假设您有一个基本的conf文件[database.properties]:
jdbc.username = user
jdbc.host = mydbserver.com
然后在Spring config 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>