我使用 C3PO 建立连接。它还具有为您进行连接池的优势。只需通过您的 spring 配置文件定义一个类型的数据源bean,例如 com.mchange.v2.c3p0.ComboPooledDataSource (或类似的)。在遇到连接池问题之前,我什至使用了不建议用于生产的 spring (DriverManagerDataSource) 之一,因为它实际上并没有进行连接池。
这是一个示例弹簧配置。
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:XE"/>
<property name="user" value="username"/>
<property name="password" value="secret"/>
<property name="minPoolSize" value="5"/>
<property name="maxPoolSize" value="20"/>
<property name="acquireIncrement" value="1"/>
<property name="idleConnectionTestPeriod" value="100"/>
<property name="maxStatements" value="0"/>
<property name="checkoutTimeout" value="60000"/>
然后 Spring 将 dataSource bean 注入 Hibernate,一切都很好。您还需要在类路径中包含 c3pO jar 文件...