回答
如果你在一個Web應用程序容器中運行,使用內置在你的容器的連接池。
否則,使用Apache DBCP:http://commons.apache.org/dbcp/
在Hibernate中,您可以在Hibernate的配置CP30連接池。查看教程here。 IBM有一個很好的教程,如何integrate Hibernate with Spring。
您可以使用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>
在DBCP的時刻實際版本是'org.apache.commons.dbcp2.BasicDataSource' – Andremoniy 2017-04-19 09:00:46
<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>
如果您想使用最佳所有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/
雖然這個鏈接可能回答這個問題,最好在這裏包含答案的重要部分,並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – Ram 2015-07-07 14:58:35
答覆已更新。 – 2015-07-07 15:18:32
- 1. 休眠配置連接池大小
- 2. 休眠OneToMany與連接表
- 3. 休眠c3p0連接池沒有超時空閒連接
- 4. 配置休眠以獲得連接池中的全新連接
- 5. 休眠:更改休眠連接
- 6. Spring與休眠的IDE
- 7. Struts1與Spring和休眠
- 8. 無法連接Postgres與休眠
- 9. 休眠與MySQL打開一堆連接
- 10. 休眠與子表連接表
- 11. Spring TransactionManager與BoneCP連接池的集成
- 12. 休眠:關閉會話工廠不關閉c3p0連接池
- 13. 休眠異常:無法實例化C3P0連接池
- 14. 如何設置休眠以使用Glassfish連接池?
- 15. 休眠/ C3P0連接池的最大尺寸是不尊重
- 16. 休眠插入連接表
- 17. 限制左連接休眠
- 18. 休眠HQL左的連接
- 19. 休眠/ c3p0連接泄漏
- 20. 休眠連接異常
- 21. 休眠JPA連接太多
- 22. 休眠連接超時
- 23. 休眠 - 連接掛起
- 24. 休眠SQL Server連接
- 25. 連接e4 RCP和休眠
- 26. 休眠MS SQL連接
- 27. 休眠連接泄漏
- 28. 休眠左連接使用
- 29. 休眠時的連接鎖
- 30. 休眠定製連接
+1 C3PO池 – 2011-04-03 07:31:53