我需要动态创建动态数据源。请允许我解释一下我到目前为止所做的事情;
<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>
在我的控制器中(数据源的自动装配实例可用);我所做的是;
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();
}
令人惊讶的是;它既不会引发任何异常,也不会更改数据源。
我已经完成了“AbstractRoutingDataSource”,但我想尽可能多地动态化我的意思是......我想连接全新的数据库甚至连接到其他数据库(当然我将拥有所需的 jar 文件)飞行.
请帮忙 :)