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