2011-04-03 117 views

回答

4

在Hibernate中,您可以在Hibernate的配置CP30連接池。查看教程here。 IBM有一個很好的教程,如何integrate Hibernate with Spring

+0

+1 C3PO池 – 2011-04-03 07:31:53

7

您可以使用DBCP組件

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
     destroy-method="close"> 

     <property name="driverClassName" value="${jdbc.driverClassName}" /> 
     <property name="url" value="${jdbc.url}" /> 
     <property name="username" value="${jdbc.username}" /> 
     <property name="password" value="${jdbc.password}" /> 
     <property name="initialSize" value="10" /> 
     <property name="maxActive" value="5" /> 
     <property name="maxWait" value="5000" /> 
    </bean> 


    <!-- Hibernate Configuration --> 
    <bean id="sessionFactory" 
     class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" 
     p:dataSource-ref="dataSource"> 
     <property name="annotatedClasses"> 
      <list> 
       <value>com.project.domain.Domain1</value> 
       <value>com.project.domain.Domain1</value> 
      </list> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect"> 
        ${hibernate.dialect} 
       </prop> 
       <prop key="hibernate.show_sql"> 
        ${hibernate.show_sql} 
       </prop> 
       <prop key="hibernate.generate_statistics"> 
        ${hibernate.show_statistics} 
       </prop> 
      </props> 
     </property> 
    </bean> 
+1

在DBCP的時刻實際版本是'org.apache.commons.dbcp2.BasicDataSource' – Andremoniy 2017-04-19 09:00:46

0
<bean id="dataSource" 
class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
<property name="url" value="<put database connection url here>" /> 
<property name="username" value="XXXXXX" /> 
<property name="password" value="XXXXXXXX" /> 
<property name="driverClassName" value="<database driver here>" /> 
</bean> 

<bean id="pool" class="org.apache.commons.pool.impl.GenericObjectPool"> 
<property name="minEvictableIdleTimeMillis"><value>300000</value></property> 
<property name="timeBetweenEvictionRunsMillis"><value>60000</value></property> 
</bean> 

<bean id="dsConnectionFactory" class="org.apache.commons.dbcp.DataSourceConnectionFactory"> 
<constructor-arg><ref bean="dataSource"/></constructor-arg> 
</bean> 

<bean id="poolableConnectionFactory" class="org.apache.commons.dbcp.PoolableConnectionFactory"> 
<constructor-arg index="0"><ref bean="dsConnectionFactory"/></constructor-arg> 
<constructor-arg index="1"><ref bean="pool"/></constructor-arg> 
<constructor-arg index="2"><null/></constructor-arg> 
<constructor-arg index="3"><null/></constructor-arg> 
<constructor-arg index="4"><value>false</value></constructor-arg> 
<constructor-arg index="5"><value>true</value></constructor-arg> 
</bean> 

<bean id="pooledDS" class="org.apache.commons.dbcp.PoolingDataSource" depends-on="poolableConnectionFactory"> 
<constructor-arg><ref bean="pool"/></constructor-arg> 
</bean> 
1

如果您想使用最佳所有Java連接池提供商之間嘗試HikariCP。 配置在servlet的環境中使用HikariCP作爲數據源的bean:

<beans:bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close"> 
       <beans:property name="dataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"/> 
       <beans:property name="maximumPoolSize" value="5" /> 
       <beans:property name="maxLifetime" value="30000" /> 
       <beans:property name="idleTimeout" value="30000" /> 
       <beans:property name="dataSourceProperties"> 
          <beans:props> 
           <beans:prop key="url">jdbc:mysql://localhost:3306/exampledb</beans:prop> 
           <beans:prop key="user">root</beans:prop> 
           <beans:prop key="password"></beans:prop> 
           <beans:prop key="prepStmtCacheSize">250</beans:prop> 
           <beans:prop key="prepStmtCacheSqlLimit">2048</beans:prop> 
           <beans:prop key="cachePrepStmts">true</beans:prop> 
           <beans:prop key="useServerPrepStmts">true</beans:prop> 
          </beans:props> 
       </beans:property> 
</beans:bean> 

然後用這個數據源創建EntityManagerFactory的豆。 與示例項目完整示例下載可以在鏈接中找到:http://frameworkonly.com/hikaricp-connection-pooling-in-spring-hibernate-jpa/

+0

雖然這個鏈接可能回答這個問題,最好在這裏包含答案的重要部分,並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – Ram 2015-07-07 14:58:35

+0

答覆已更新。 – 2015-07-07 15:18:32