我有一个使用Hibernate作为JPA提供程序的Spring / JPA应用程序。我已经通过以下方式在Spring中配置了C3P0数据源:
<bean id="myJdbcDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <!-- Connection properties --> <property name="driverClass" value="$DS{database.class}" /> <property name="jdbcUrl" value="$DS{database.url}" /> <property name="user" value="$DS{database.username}" /> <property name="password" value="$DS{database.password}" /> <!-- Pool properties --> <property name="minPoolSize" value="5" /> <property name="maxPoolSize" value="20" /> <property name="maxStatements" value="50" /> <property name="idleConnectionTestPeriod" value="3000" /> <property name="loginTimeout" value="300" />
然后,我在Spring实体管理器工厂中指定了此数据源,如下所示:
<bean id="myLocalEmf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="persistenceUnitName" value="myapp-core" /> <property name="dataSource" ref="myJdbcDataSource" /> </bean>
但是,我最近在浏览Maven工件时注意到“ hibernate-c3p0”。这是什么?这是我需要使用的东西吗?还是我已经正确配置了它?
hibernate-c3p0.jar提供了class org.hibernate.connection.C3P0ConnectionProvider,它是Hibernate ConnectionProvider契约的基于C3P0的实现。要将C3P0用作Hibernate的独立连接池(通过hibernate.cfg.xml文件配置)时,需要此工件。由于您使用的是Spring,因此不需要它。
org.hibernate.connection.C3P0ConnectionProvider
ConnectionProvider
hibernate.cfg.xml