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

问题描述:

当我访问应用程序时,是否可以将不同的mysql数据库名称传递给applicationcontext.xml数据源bean。在我的应用程序中,我使用了spring和hibernate框架。请回答我的问题。如何在运行时根据applicationcontext.xml中定义的数据库名称更改数据源对象

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