我讨厌让你失望,但我在同一个问题上跑了一阵子。关键是ConnectionProviderUtil在文档中是相当具有误导性的。哪有这回事。 ConnectionProviderUtil是你必须实现的东西。我通过在MultiTenantConnectionProvider中构建我自己的DataSource
(一个c3p0共用一个)来实现此目的,并从那里发出连接。
所以你必须从头开始自己实现它。这里的参考是我的解决方案。 Setting up a MultiTenantConnectionProvider using Hibernate 4.2 and Spring 3.1.1
对于多数据库方法,您可以将不同的DataSources
自动装入MultiTenantConnectionProvider
,并根据TenantIdentifier进行切换。看到这个答案的详细信息:https://stackoverflow.com/a/16769595/2319179
编辑: 如果你使用Spring,你可以设置一个DataSource在appcontext这样的:
<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>"));
快速谷歌搜索应该调出正确的驱动程序。
我如何SQLite的创建数据源?是否有任何东西或我需要编码一切? – MAGx2
我看到DriverManagerDataSource只在Spring中。我可以在Java SE中以某种方式做到这一点吗? – MAGx2
应该有可用的java.sql.DataSource。这也是DriverManagerDataSource的核心。 – Carsten