hibernate默认连接池

Adi*_*ron 16 hibernate connection-pooling

Hibernate默认使用连接池吗?如果是这样,*connection.pool_size*的默认值是多少?它不与*hibernate.connection.release_mode*冲突吗?是不是连接池的所有想法都没有关闭连接?

Jor*_*son 8

默认的hibernate连接池(不应在生产中使用)的默认限制为1,因为它仅用于简单测试.但是,这可以通过hibernate.properties文件进行配置,因此值得检查是否在项目中定义了它.

有问题的财产是:

hibernate.connection.pool_size即可

有关这方面的信息主要包含在以下链接中:

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/session-configuration.html

虽然这不直接指定默认的连接池大小,但它确实具有您在hibernate中连接池主题上可能需要的大部分信息.

  • 您能否分享 hibernate.connection.pool_size=1 的默认大小的来源?,正如您在上面的链接中所说。 (2认同)

Sur*_*tta 6

默认情况下,Hibernate能够通过适当地设置属性从JNDI获取数据源实现(javax.sql.DataSource):

默认JNDI连接池maxsize是 - 无最大大小

在这里,您可以找到JNDI池的默认值.

http://docs.oracle.com/javase/jndi/tutorial/ldap/connect/config.html

为了获得高效性能您应该使用a third party pool以获得最佳性能和稳定性.

如果您使用的是应用程序服务器,则可能希望使用内置池(通常是使用JNDI获取连接).如果您不能或不希望使用应用程序服务器的内置连接池,Hibernate支持其他几个连接池,例如

  • C3P0

  • Apache DBCP

  • Proxool的

http://www.informit.com/articles/article.aspx?p=353736&seqNum=4


小智 6

我没有找到有关 Hibernate 连接池默认值的文档,因此我查看了源代码并发现(hibernate-core-5.2.0.Final 中的类 DriverManagerConnectionProviderImpl):

hibernate.connection.initial_pool_size = 1;
hibernate.connection.min_pool_size = 1;
hibernate.connection.pool_size = 20;
hibernate.connection.pool_validation_interval = 30;
hibernate.connection.autocommit = false;
Run Code Online (Sandbox Code Playgroud)