我需要动态创建动态数据源。请允许我解释一下我到目前为止所做的事情;
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/db1"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
在我的控制器中(dataSource的自动装配实例可用);我做的是;
BasicDataSource newDataSource = new BasicDataSource();
newDataSource.setDriverClassName(request.getParameter("driverClassName"));
newDataSource.setUrl(request.getParameter("url"));
newDataSource.setUsername(request.getParameter("username"));
newDataSource.setPassword(request.getParameter("password"));
try {
dataSource.close();
if(dataSource.isClosed()) {
dataSource = null;
dataSource = newDataSource;
newDataSource = null;
}
} catch (Exception e){
e.printStackTrace();
}
令人惊讶的是;它既没有引发任何异常也没有改变dataSource。
我已经完成了“AbstractRoutingDataSource”,但我想尽可能多地动态我想...我想连接全新的数据库甚至连接到其他数据库(当然我将拥有所需的jar文件)在飞行中。
请帮助:)