Hibernate設定ファイルその1 - hibernate.cfg.xml

2008/07/29 08:29Update
TAGS: hibernate | 設定 | hibernate.cfg.xml

Hibernateを用いてデータベースとの接続などを行うには、設定は必要となります。

 
設定方法としては、プロパティファイル形式のhibernate.propertiesもしくはXMLベースのhibernate.cfg.xmlを用いることが可能です。通常はXMLフォーマットのhibernate.cfg.xmlを使いましょう。

ここでは、hibernate.cfg.xmlを用いてHibernateの設定方法について説明します。

hibernate.cfg.xmlのよくある定義例:
hibernate.cfg.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">


<hibernate-configuration>
    <!-- セッション・ファクトリ定義 -->
    <session-factory>
<!-- データベースの接続・設定 -->
        <!-- org.hibernate.dialect.MySQLDialect -->
        <!-- JDBCドライバー(ここではMySQLのcom.mysql.jdbc.Driverを用いる) -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>

        <!-- DB接続URL(適当修正してください) -->
        <property name="connection.url">jdbc:mysql://localhost/myproj</property>
        <property name="connection.username">myproj</property>
        <property name="connection.password">myproj</property>

        <!-- HibernateのDialect(方言)設定(ここではMySQLのDialectを用いる) -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
       
        <!-- configuration pool via c3p0--> 
<!--    コネクション・プールの設定例(c3p0)
        <property name="c3p0.acquire_increment">1</property>
        <property name="c3p0.idle_test_period">100</property>
        <property name="c3p0.max_size">100</property>
        <property name="c3p0.max_statements">0</property>
        <property name="c3p0.min_size">10</property>
        <property name="c3p0.timeout">100</property>
-->

<!--     キャッシュの設定例(EhCacheProvider)
        <property name="hibernate.cache.use_query_cache">true</property>
        <property name="hibernate.cache.provider_class">
            org.hibernate.cache.EhCacheProvider
        </property>
-->

        <!-- 実際に実行されたSQL文を表示するかどうかの設定。デバッグ時特に有用 -->
        <property name="show_sql">false</property>
        <!-- OUTER JOINを使うかどうか -->
        <property name="use_outer_join">true</property>
        
        <!-- マッピングファイル&クエリの定義ファイル -->
        <mapping resource="TableName01.hbm.xml"/>
        <mapping resource="TableName02.hbm.xml"/>
        <!-- クエリを単独のファイルで定義する場合、その定義ファイルを追加しましょう -->
        <mapping resource="Query.hbm.xml"/>

    
        <!-- usage: read-only read-write nonstrict-read-write transaction -->
        <!-- cache -->
<!--    テーブルごとのキャッシュ設定
        <class-cache class="xxx.yyy.entity.Table01" usage="nonstrict-read-write"/>
        <class-cache class="xxx.yyy.entity.Table02" usage="read-only"/>
-->
        <!--
        <collection-cache collection="xxx.yyy.entity.Table01.zzzSet" usage="read-write"/>
        -->
        
    </session-factory>
</hibernate-configuration>

※説明はソースの中に書いておりますので、参考になってください。

また、ファイルhibernate.cfg.xmlをクラスパスのルートに置くようにしてください。Hibernate のSessionFactoryのインスタンスを初期化する際、デフォルト(パラメータ未指定の場合)では、クラスパスのルートで hibernate.cfg.xml というファイルを自動的に探します。もちろん、SessionFactoryのインスタンスの初期化の時、hibernate.cfg.xmlのパスを指定することもできます。

詳細はDTDをご参考ください。
http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd 

有关作者
Syboos.jp編集長AJavaやオープンソース情報の執筆、Webサイトの開発や運営全般の業務に携わる。

Sponsored Link


Comments