0

我需要动态创建动态数据源。请允许我解释一下我到目前为止所做的事情;

    <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 文件)飞行.

请帮忙 :)

4

0 回答 0