java - 使用 HikariCP 配置 hibernate

标签 java hibernate database-connection c3p0 hikaricp

由于 c3p0 连接池的问题,我想查看备选方案并决定哪一个可能对我的情况更有用。 HikariCP 看起来很有前途,但没有关于如何将它与 Hibernate 一起使用的文档。

到目前为止,我使用的 c3p0 如下:

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="persistenceUnit"/>
    <property name="jpaProperties">
        <props>
            <prop key="hibernate.dialect">${database.dialect}</prop>
            <prop key="hibernate.hbm2ddl.auto">${database.structure}</prop>
            <prop key="hibernate.connection.url">${database.connection}</prop>
            <prop key="hibernate.connection.username">${database.username}</prop>
            <prop key="hibernate.connection.password">${database.password}</prop>
            <prop key="hibernate.connection.driver_class">${database.driver}</prop>
            <prop key="hibernate.connection.shutdown">true</prop>
            <prop key="hibernate.connection.writedelay">0</prop>
            <prop key="hibernate.connection.characterEncoding">UTF-8</prop>
            <prop key="hibernate.connection.charSet">UTF-8</prop>
            <prop key="hibernate.show_sql">${database.show_sql}</prop>
            <prop key="hibernate.format_sql">false</prop>
            <prop key="hibernate.ejb.metamodel.generation">disabled</prop>
            <!-- Use the C3P0 connection pool provider -->
            <prop key="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</prop>
            <prop key="hibernate.c3p0.min_size">5</prop>
            <prop key="hibernate.c3p0.max_size">30</prop>
            <prop key="hibernate.c3p0.timeout">300</prop>
            <prop key="hibernate.c3p0.max_statements">50</prop>
            <prop key="hibernate.c3p0.idle_test_period">600</prop>
        </props>
    </property>

谁能告诉我如何以这种方式配置 HikariCP?

最佳答案

您可以使用 hibernate-hikaricp 包提供的 org.hibernate.hikaricp.internal.HikariCPConnectionProvider

您可以将其安装为 Maven 依赖项(请不要忘记更新版本号):

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-hikaricp</artifactId>
    <version>5.2.10.Final</version>
</dependency>

并在hibernate.properties中配置:

`hibernate.connection.provider_class=org.hibernate.hikaricp.internal.HikariCPConnectionProvider`

请注意:从 Hibernate 4.3.6 开始,您应该不再使用com.zaxxer.hikari.hibernate.HikariConnectionProvider(参见:https://github.com/brettwooldridge/HikariCP/wiki/Hibernate4)

关于java - 使用 HikariCP 配置 hibernate ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20899455/

相关文章:

php - 如何在mysql数据库连接中使用throw exception

java - 如何检查两个对象是否属于同一类?

java - 如何获取 JTextPane 的内容?

java - 生成跨多个表唯一的主键

spring - 使用 Spring + Hibernate 的 Multi-Tenancy 中鉴别器模型的事务支持

c# - SQL Express 连接字符串 : mdf file location relative to application location

java - 如何编写Java类从Json中获取没有固定字段的对象?

java - 在 servlet 响应中将 ISO-8859-1 转换为 UTF-8

java - 如何使用 Hibernate 连接 SQL Server 2000?

error-handling - 小门: Where to handle JDBC connection error