Hibernateの設定

ここでは、Hibernateプログラミングのファイル構成と、Netbeansの利用を前提にしたHibernateプログラミングの設定についてとりあげます。

Hibernateを利用するために最低限必要なことの概要

    • データベースの用意
    • JDBCドライバの用意
    • Hibernate関係のライブラリの用意
    • Hibernateの設定ファイルの記述(xmlファイル)
    • Hibernate用のJavabeanファイルの作成

以上の準備を行って,具体的なJavaのプログラムコードを記述することができます。

注意データベースプログラミングを始める前に、、、

まずは、データベースをしっかり設計することが大切です。Hibernateでは、扱うデータベースの構造に従ってクラスファイルを作成しますから、あとから変更があるとそのクラスを変更する必要があります。

Netbeansによる環境設定

    • Netbeansには、標準でHibernateのライブラリがはいっているはずです。ツール→ライブラリでHibernateがあることを確認してください。
    • 自分のプログラムでHibernateライブラリを使う際には、そのHibernateライブラリを参照する必要があります。
    • 通常のJavaアプリであれば、現在のプロジェクトの上で右クリック→プロパティを選びます。そして、ライブラリを選択し、ライブラリを追加ボタンで、Hibernateを追加します。
    • ウェブアプリの場合は、プロジェクトの作成時に、フレームワークを選択するメニューがありますのでそこでHibernateを選びます。
    • もし、選び忘れた場合は、プロジェクトの上で右クリック→プロパティを選びます。フレームワークというのがありますので、そこを選択してHibernateを追加してください。
    • 注意:プログラムを実行した際に、ClassNotFoundExcpeptionが発生して、javax.persistance.* がないといったエラーがでる場合があります。その際は、プロジェクトのプロパティにて次のjarファイルをライブラリとして追加してください。
    • <Netbeansインストールディレクトリ>\java3\modules\ext\hibernate\ejb3-persistence.jar

Hibernate のファイル構成・関係

Hibernateを利用する際に作成するファイルは主に次の種類があります. Netbeansではこれらの作成は自動化されます。

    • Hibernateコンフィグファイル(hibernate.cfg. xml) ・・・ Hibernateの設定ファイル
    • マッピングファイル(~.hbm.xml) ・・・ クラス単位で定義します。(Annotationを用いれば不要になります)
    • Hibernate用エンティティBeanクラス ・・・ POJO のビーンクラスです.POJOであるということが,Hibernateのよさでもあります.

これらの意味を頭に入れておいてください。

Netbeansによる関連ファイルの生成

1.Netbeansへのデータベースの登録

Netbeansで各種ファイルを作成するには、まず、利用するデータベースをNetbeansのデータベースのリストに登録する必要があります。これは新規に作成する or 既存のデータベースを利用する、のいずれの場合でもです。その設定方法は、ここを参照してください。

もし、とりあえずはやいとこ動かしてみたいという人は、Netbeansにサンプルで入っているデータベースを利用してもいいです。

2.Hibernate設定ファイルの作成

    1. プロジェクトの上で右クリック→新規→Hibernate構成ウィザードを選択
    2. 完了を押すことで、hibernate.cfg.xmlが作成されます。

補足、Netbeansのサンプルのデータベース(Derby)を利用する場合、hibernate.cfg.xmlにおいてパスワードの記述をしないと次のリバースエンジニアリングファイルの作成で失敗するので注意すること。Derbyでデータベースを作成した際はパスワードの設定をしてないと思いますが、hibernate.cfg.xmlファイルではパスワードを書いておいてください(なんでもいいです)。

3.リバースエンジニアリングファイルの作成

このファイルは、4のエンティティBeanの自動生成をする際に利用されます。このファイルには、クラス生成に対応するデータベースのテーブルが記述されます。ここに書かれていないテーブルは、4の自動生成で作成されません。

    1. プロジェクトの上で右クリック→新規→Hibernateリバースエンジニアリングウィザードを選択
    2. すべてのテーブルを追加して完了を押すと、hibernate.reveng.xmlが作成されます。

4.エンティティBeanクラスの作成

原則、エンティティBeanはPOJOですが、Hibernate-Annotaionを用いる場合はアノテーションの記述が必要です。アノテーションの記述については、Netbeansが自動作成してくれます。

      1. プロジェクトの上で右クリック→新規→データベースからのHibernateのマッピングファイルとPOJOを選択
      2. コード生成で、Hibernate XMLマッピング のチェックをはずす(Hibernate-Annoationを利用するのであれば必要がありません)
      3. EJB3注釈のチェックを入れる(Hibernate-Annoationを利用するのであれば必要)
      4. 完了を押すとテーブルごとにクラスが作成されます。

もし、後からテーブルを作成した際には、リバースエンジニアリングファイルを修正してから自動生成して下さい。なお、再生成した際は、エンティティBeanクラスは上書きして保存されますので注意してください。というか、エンティティBeanクラスはそもそも何か追加で記述するものでありません。

5.HibernateUtilファイルを作成

Hibernateでデータベースへ接続を管理するユーティリティファイルです。作成は必須ではありませんが、これを作成して利用することを勧めます。