開発者ドキュメント

HibernateでC3P0接続プールを設定する方法


wiki接続プール

の説明を参照してください

Hibernateには内部接続プールが付属していますが、実稼働環境には適していません。このチュートリアルでは、サードパーティの接続プール(C3P0)をHibernateと統合する方法を説明します。

1. hibernate-c3p0.jarを入手する

c3p0をHibernateに統合するには、

hibernate-c3p0.jar

が必要です。JBossリポジトリから取得してください。


File:pom.xml

<project ...>

    <repositories>
        <repository>
            <id>JBoss repository</id>
            <url>http://repository.jboss.org/nexus/content/groups/public/</url>
        </repository>
    </repositories>

    <dependencies>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>3.6.3.Final</version>
        </dependency>

        <!-- Hibernate c3p0 connection pool -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-c3p0</artifactId>
            <version>3.6.3.Final</version>
        </dependency>

    </dependencies>
</project>

2. c3p0のプロパティを設定する

c3p0を設定するには、c3p0の設定の詳細を ”

hibernate.cfg.xml

“に入れます。


File:hibernate.cfg.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory>
  <property name="hibernate.connection.driver__class">oracle.jdbc.driver.OracleDriver</property>
  <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:MKYONG</property>
  <property name="hibernate.connection.username">mkyong</property>
  <property name="hibernate.connection.password">password</property>
  <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
  <property name="hibernate.default__schema">MKYONG</property>
  <property name="show__sql">true</property>

  <property name="hibernate.c3p0.min__size">5</property>
  <property name="hibernate.c3p0.max__size">20</property>
  <property name="hibernate.c3p0.timeout">300</property>
  <property name="hibernate.c3p0.max__statements">50</property>
  <property name="hibernate.c3p0.idle__test__period">3000</property>

  <mapping class="com.mkyong.user.DBUser"></mapping>
</session-factory>
</hibernate-configuration>
  1. hibernate.c3p0.min__size – 中のJDBC接続の最小数

プール。休止状態のデフォルト値:1
。 hibernate.c3p0.max__size – その中のJDBC接続の最大数

プール。休止状態のデフォルト:100
。 hibernate.c3p0.timeout – アイドル状態の接続が

プール(秒)。休止状態のデフォルト:0、期限切れではありません。

  1. hibernate.c3p0.max__statements – プリペアドステートメントの数は

キャッシュされます。パフォーマンスを向上させます。 Hibernateのデフォルト値は0です。キャッシングは無効です。

  1. hibernate.c3p0.idle

    test

    period – 1秒前のアイドル時間

接続は自動的に検証されます。休止状態のデフォルト値:0



  • + hibernate-c3p0

    設定の詳細については、http://community.jboss.org/wiki/HowToConfigureTheC3P0ConnectionPoolこの記事を読んでください。

それを実行し、出力する

完了して、次の出力を参照してください。



接続の初期化プロセス中に、5つのデータベース接続が接続プールに作成され、Webアプリケーションの再利用が可能になります。

それをダウンロードしてください://wp-content/uploads/2009/12/Hibernate-C3P0-Connection-Pool-Example.zip[Hibernate-C3P0-Connection-Pool-Example.zip](8KB)

モバイルバージョンを終了