如何在运行时基于applicationcontext.xml中定义的数据库名称更改数据源对象

时间:2014-07-06 15:26:06

标签: spring hibernate

当我访问应用程序时,是否可以将不同的mysql数据库名称传递给applicationcontext.xml数据源bean。在我的应用程序中,我使用spring和hibernate框架。请回答我的问题。

1 个答案:

答案 0 :(得分:0)

1)尝试将所有数据库信息存储在属性文件中,如:

jdbc.username = root
jdbc.password = letmein
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/database-url

并在xml文件中:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close">
    <property name="driverClassName" value="${jdbc.driver}"></property>
    <property name="url" value="${jdbc.url}"></property>
    <property name="password" value="${jdbc.password}"></property>
    <property name="username" value="${jdbc.username}"></property>

访问应用程序时应该更改jdbd.url,对吗?

我认为使用InputStream可以在java中导入文件并编辑属性文件并更改jdbc.url。

2)您还可以使用方法setUrl(string s)更改url并再次运行方法setDataSource。请参阅此处BasicDataSource