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設定ファイルの作成
- プロジェクトの上で右クリック→新規→Hibernate構成ウィザードを選択
- 完了を押すことで、hibernate.cfg.xmlが作成されます。
補足、Netbeansのサンプルのデータベース(Derby)を利用する場合、hibernate.cfg.xmlにおいてパスワードの記述をしないと次のリバースエンジニアリングファイルの作成で失敗するので注意すること。Derbyでデータベースを作成した際はパスワードの設定をしてないと思いますが、hibernate.cfg.xmlファイルではパスワードを書いておいてください(なんでもいいです)。
3.リバースエンジニアリングファイルの作成
このファイルは、4のエンティティBeanの自動生成をする際に利用されます。このファイルには、クラス生成に対応するデータベースのテーブルが記述されます。ここに書かれていないテーブルは、4の自動生成で作成されません。
- プロジェクトの上で右クリック→新規→Hibernateリバースエンジニアリングウィザードを選択
- すべてのテーブルを追加して完了を押すと、hibernate.reveng.xmlが作成されます。
4.エンティティBeanクラスの作成
原則、エンティティBeanはPOJOですが、Hibernate-Annotaionを用いる場合はアノテーションの記述が必要です。アノテーションの記述については、Netbeansが自動作成してくれます。
- プロジェクトの上で右クリック→新規→データベースからのHibernateのマッピングファイルとPOJOを選択
- コード生成で、Hibernate XMLマッピング のチェックをはずす(Hibernate-Annoationを利用するのであれば必要がありません)
- EJB3注釈のチェックを入れる(Hibernate-Annoationを利用するのであれば必要)
- 完了を押すとテーブルごとにクラスが作成されます。
もし、後からテーブルを作成した際には、リバースエンジニアリングファイルを修正してから自動生成して下さい。なお、再生成した際は、エンティティBeanクラスは上書きして保存されますので注意してください。というか、エンティティBeanクラスはそもそも何か追加で記述するものでありません。
5.HibernateUtilファイルを作成
Hibernateでデータベースへ接続を管理するユーティリティファイルです。作成は必須ではありませんが、これを作成して利用することを勧めます。