我不想让你失望,但不久前我遇到了同样的问题。关键是 ConnectionProviderUtil 在文档中非常具有误导性。哪有这回事。ConnectionProviderUtil 是您必须自己实现的东西。我通过在 MultiTenantConnectionProvider 中构建自己的DataSource
(一个 c3p0 池化的)并从那里分发连接来实现这一点。
所以你必须自己从头开始实现它。供参考,这是我的解决方案。使用 Hibernate 4.2 和 Spring 3.1.1 设置 MultiTenantConnectionProvider
对于多 DB 方法,您可以根据 TenantIdentifier将不同自动连接DataSources
到并切换。MultiTenantConnectionProvider
有关更多详细信息,请参阅此答案:https ://stackoverflow.com/a/16769595/2319179
编辑:
如果您使用 Spring,您可以在 appcontext 中设置一个 DataSource,如下所示:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="<jdbcdriver>" />
<property name="url" value="jdbc:SQLServer://<host>:<port>;databaseName=<dbname>" />
<property name="username" value="<user>" />
<property name="password" value="<pw>" />
</bean>
如果您需要从 java 构建它,您可以这样做:
cpds = new DriverManagerDataSource();
cpds.setDriverClass(<jdbc.driver>);
cpds.setJdbcUrl(<jdbc.url>);
cpds.setUser("<user>");
cpds.setPassword("<pw>"));
快速的 googlesearch 应该会找到正确的驱动程序。