如何在运行时根据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