在Web应用程序中创建动态DataSource

时间:2013-07-05 09:19:24

标签: spring datasource

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

    <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文件)在飞行中。

请帮助:)

0 个答案:

没有答案