
[IT Architect連動企画]
連載:Hibernateで理解するO/Rマッピング(3)
Hibernateを試すための準備
| O/Rマッピングは、従来の煩雑なデータベースに関する処理の記述をスマートにし、柔軟なアプリケーションの構築を可能にします。本連載ではオープンソースのO/Rマッピングフレームワーク「Hibernate」を用いてO/Rマッピングの基礎を解説します。そしてさらに、J2EEアプリケーションへの実践的な適用方法とそのメリットも紹介していきます。(編集局) |
クロノス
山本大
2004/7/16
|
|
Hibernateと無償ソフトウェアでO/Rマッピングを体験 |
主な内容
|
前回、前々回までの内容では「O/Rマッピングの概要」と「Entity Beanの問題点」を解説しました。今回からは「Hibernate」という無償で利用できるO/Rマッピングフレームワークを使い、O/Rマッピングを実際に試して理解を深めることにしましょう。
第3回は、O/Rマッピングを試すための環境を作ります。本連載では、サンプルアプリケーションを簡単に試すために、統合開発環境のEclipseを利用します。また、データベースにはMySQLを使用します。
|
|
Hibernateを取り巻く環境と人気の理由 |
Hibernate( http://www.hibernate.org/ )はGavin King氏を中心とした「Hibernateチーム」が開発しているJavaのO/Rマッピングフレームワークであり、無償での「商用利用」が可能なLGPL ライセンスで提供されているオープンソースのソフトウェアです。
Hibernateは全世界で広く利用されており、数あるO/Rマッピングフレームワークの中でも世界的に最も人気のある製品の1つとして数えられています。
| LGPLライセンスとは? もともとは「Gnu Library General Public License」という名前で公開されたライブラリ用のGPLライセンスです。現在は「Library」の部分が「Lesser」(重要でない、小さいといった意味)に変更されており、ソースを公開しないソフトウェアに組み込んで利用することが可能です。 |
Hibernateを取り巻く環境は、このところ非常に目まぐるしく動いています。まず2003年9月18日にHibernate制作の中心人物であるGavin King氏がJBoss Groupに雇い入れられることになりました。現在JBoss Groupの支援によってHibernateの機能と性能の向上、ドキュメントの充実が急速に進んでいます。
次いでGavin King氏が「JDO Expert Group」に参画し、主にJDO 2.0の仕様の策定を行うという情報がHibernateのコミュニティで公表されました。さらに最近ではGavin King氏がEJB 3.0 Expert Groupに参加したというニュースもありました。これによってEJB 3.0のEntity BeanもHibernateに近い設計になることが予想されます。
| Gavin
King氏のBlog この話題は将来のJ2EE仕様に大きく影響を及ぼすビッグニュースですが、本稿の趣旨からはそれてしまうため詳細には言及しません。しかし、このニュースから、Hibernateが今後のJ2EE開発に関連するテクノロジとして重要なものになることが想定できます。 |
実際のシステム開発で導入するフレームワークを選定する際には、シビアで複雑な要件下での利用に耐え得るかどうかが問われることになります。特にデータベース操作や検索に対する要求の高さは顕著です。その中でHibernateが人気を集めるのは以下のような理由があります。
- 柔軟性に富んだ強力なO/Rマッピングの方法を提供
- Entity Beanが持つデメリットのクリア
- 公式ドキュメントの充実
- 開発者が公式サイトにて「ultra-high performance」と公言するほどのパフォーマンスの良さ
これだけのメリットがありながらオープンソースとして提供されているわけですから、その人気の高さもうなずけます。
上記のメリットの中でもドキュメントが充実していることや柔軟なアーキテクチャを採用していることは、実践的で複雑な要件に柔軟に対応するには非常に重要なポイントです。Hibernateのドキュメントはすべて英語ですが、本当に困難な状況に直面したときに「公式なドキュメント」としてまとまった情報が存在することは、開発者の大きな手助けになることでしょう。またドキュメントの日本語翻訳プロジェクトも進められています。
| ここまでのまとめ:「Hibernateの人気の理由」 ・柔軟性に富んだアーキテクチャ ・公式ドキュメントの充実 ・高いパフォーマンス ・JBoss Groupの支援 |
|
|
環境の準備 |
次回から実際に簡単なサンプルを利用してHibernateのO/Rマッピングを試すために、今回は環境の構築を行います。
最初に開発に必要な環境を準備します。本連載ではRDBMSにMySQLを、統合開発環境(IDE)としてEclipseを使用しています(MySQLやEclipseのセットアップに関する詳細は本稿では説明していません)。
なおサンプルプログラムの検証に用いた環境の一覧を下表にまとめました。
サンプルプログラムの実行環境
|
それぞれのソフトウェアのセットアップは以下に従って行ってください。
|
MySQL Eclipse Hibernate |
執筆時点での最新版はHibernate-2.1.4であり、この記事のサンプルプログラムでは「hibernate-2.1.4.zip」をダウンロードしています。なお、Hibernateは頻繁に更新されていますので、今回使用したバージョンと異なるバージョンを使用した場合、サンプルどおりに動作しない可能性があることを了承ください。
|
|
Eclipseプロジェクトの作成 |
今回は、Eclipseのプロジェクトの作成までを行います。Eclipseで新しいプロジェクト「HibernateProject」を作成し、ディレクトリを以下のように作成してください。
![]() |
| 画面1 サンプルプロジェクトのディレクトリ構成 |
|
ソース用ディレクトリの設定「HibernateProject /src」 クラスファイルの出力ディレクトリの設定「HibernateProject/build/classes」 |
![]() |
| 画面2 ソース・フォルダと出力フォルダの設定 |
|
ライブラリ用ディレクトリ「HibernateProject /build/lib」 設定ファイル用ディレクトリ「HibernateProject/config」
|
■Hibernateライブラリのコピー
Hibernateディストリビューションに含まれる「hibernate2.jar」ファイルを、プロジェクトの「build/lib」ディレクトリに配置します。
■JDBCドライバのコピー
データベース接続のためのJDBCドライバをクラスパスに設定します。今回のケースでは、mysql-connector-java-3.0.14-production-bin.jar(MySQL用JDBCドライバ)を「build/lib」ディレクトリにコピーします。
■サードパーティライブラリのコピー
Hibernateは、実行時にいくつかのサードパーティ製ライブラリを必要とします。それらはすべてHibernateのディストリビューションの「hibernate-2.1/lib」ディレクトリに格納されています。Hibernateを動作させるために必須のライブラリを以下に示します(これらのライブラリはHibernateのバージョンによっては変更や追加が行われることがあります。バージョンごとの必須ライブラリはHibernateのディストリビューションに含まれる「hibernate-2.1/lib/ README.txt」を確認してrequiredとされているものを選択してください)。
- cglib-full.jar
- commons -collections.jar
- commons -logging.jar
- dom4j.jar
- jdbc2_0-stdext.jar
- ehcache.jar
- jta.jar
- odmg.jar
上記のライブラリを「build/lib」ディレクトリにコピーしてください。また、Hibernateディストリビューションの「hibernate-2.1/src」ディレクトリに「log4j.properties」という名称のファイルがあり、Log4jを使う際のログ出力の設定が記述されています。同じログ出力定義をXMLでも定義することが可能ですが、このサンプルではHibernateで提供されているものを使用します。この「log4j.properties」を先ほど作成した「HibernateProject/config」ディレクトリにコピーしておきましょう。
![]() |
| 画面3 必要なライブラリおよびファイルをコピー |
■JARビルドパスとクラスフォルダーの設定
「build/lib」ディレクトリに配置したjarファイルをクラスパスに設定します。またHibernateが使用する設定ファイルは、クラスパスに設定されているディレクトリ上に配置する必要があるため「HibernateProject/config」ディレクトリにもクラスパスを通します。これらの設定を以下の手順で行ってください。
Eclipseパッケージエクスプローラーのプロジェクト名「HibernateProject」上で右クリックしてプロパティダイアログを開き、[Javaのビルドパス]から[ライブラリー]タブを選択してください。
![]() |
| 画面4 [ライブラリー]タブを選択 |
[JARの追加]ボタンをクリックして、「HibernateProject /lib」ディレクトリに配置したJARファイルをすべて選択して[OK]ボタンを押します。
![]() |
| 画面5 JARファイルをすべて追加 |
次に、[クラスフォルダーの追加]ボタンで「config」ディレクトリを選択して[OK]ボタンを押します。
![]() |
| 画面6 [config]ディレクトリを選択 |
[プロパティ]ダイアログを[OK]ボタンで閉じてください。
ここまでで、O/Rマッピングを試す環境の準備が整いました。次回はいよいよ、簡単なサンプルを使い、データベースアクセスの基本的な処理である1つのテーブルへの「検索・更新・登録・削除」を行ってみます。
| 筆者プロフィール |
| 山本 大(やまもと だい) 株式会社クロノスに勤務するITアーキテクト。甲南大学 経営学部 卒業。J2EE、.NETにこだわらずベストソリューションを提供できるマルチプラットフォームアーキテクトを目指す。『XMLマスター教科書 プロフェッショナル』(翔泳社)や雑誌などで執筆活動も行っている。 |
Hibernateで理解するO/Rマッピング バックナンバー
| Java Solution全記事一覧 |
TechTargetジャパン
- Scalaのパッケージ、アクセス修飾子、オブジェクト継承 (2012/5/22)
インポート、パッケージオブジェクト、抽象クラス/抽象メソッド、オーバーライド、final、シールドクラスなども - 基幹系システムでCloud SQLは使えるか試してみた (2012/5/17)
サンプルとしてMRPシステムを作成して動かし、「再帰呼び出し」などのパフォーマンスを測定して検証してみます - アジャイル管理ツール9選+Pivotal Tracker入門 (2012/5/14)
群雄割拠のアジャイルプロジェクト管理ツールを9つ紹介し、特に注目を集めているPivotal Trackerの基本的な使い方を解説します - サーバサイドJSやJavaでWebアプリが作れるXPages (2012/5/11)
Notes/Dominoの資産をサーバサイドJavaScriptやJavaで操作し、HTMLやJavaScript、CSSをUIにできる技術を紹介
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -






