Как настроить пул соединений C3P0 в Hibernate

Как настроить пул соединений C3P0 в Hibernate

Connection Pool
Пул соединений хорош для производительности, так как он предотвращает создание соединения Java-приложением каждый раз при взаимодействии с базой данных и минимизирует затраты на открытие и закрытие соединений.

См. Объяснениеwiki connection pool

Hibernate поставляется с внутренним пулом соединений, но не подходит для производственного использования. В этом руководстве мы покажем, как интегрировать сторонний пул соединений - C3P0 с Hibernate.

1. Получить hibernate-c3p0.jar

Для интеграции c3p0 с Hibernate вам понадобитсяhibernate-c3p0.jar, получите его из репозитория JBoss.

Файл: pom.xml



    
        
            JBoss repository
            http://repository.jboss.org/nexus/content/groups/public/
        
    

    

        
            org.hibernate
            hibernate-core
            3.6.3.Final
        

        
        
            org.hibernate
            hibernate-c3p0
            3.6.3.Final
        

    

2. Настроить свойства c3p0

Чтобы настроить c3p0, поместите детали конфигурации c3p0 в «hibernate.cfg.xml», например:

Файл: hibernate.cfg.xml




 
  oracle.jdbc.driver.OracleDriver
  jdbc:oracle:thin:@localhost:1521:MKYONG
  example
  password
  org.hibernate.dialect.Oracle10gDialect
  MKYONG
  true

  5
  20
  300
  50
  3000

  

  1. hibernate.c3p0.min_size – Minimum number of JDBC connections in the pool. Спящий режим по умолчанию: 1

  2. hibernate.c3p0.max_size – Maximum number of JDBC connections in the pool. Спящий режим по умолчанию: 100

  3. hibernate.c3p0.timeout – When an idle connection is removed from the pool (in second). Hibernate по умолчанию: 0, никогда не истекает.

  4. hibernate.c3p0.max_statements – Number of prepared statements will be cached. Повысить производительность. Hibernate по умолчанию: 0, кэширование отключено.

  5. hibernate.c3p0.idle_test_period – idle time in seconds before a connection is automatically validated. Спящий режим по умолчанию: 0

Note
Подробнее о настройках конфигурацииhibernate-c3p0 читайте в статьеthis.

Запустить его, вывести

Готово, запустите его и увидите следующий вывод:

c3p0 connection pool in hibernate

В процессе инициализации соединения в пуле соединений создается 5 соединений с базой данных, готовые к повторному использованию для вашего веб-приложения.