連載 [第7回] :
徹底比較!! O/Rマッピングツールそれぞれのメリット/デメリット
2006年9月4日(月)
はじめに
皆さん、こんにちは。本連載を担当するビーブレイクシステムズの山之内です。
前回まで「iBATIS」「Torque」「Hibernate」という3つのO/Rマッピングツールを見てきました。実際に各フレームワークを利用してサンプルを作成することで、各フレームワークの特長をつかめたかと思います。
最終回となる今回は、まとめとして各フレームワークの特長やクセに注目し、メリット/デメリットをあげながら各フレームワークを比較していきます。また、軽くではありますがEJB 3.0も取り上げ、その特長を説明したいと思います。
各フレームワークの特長
iBATIS、Torque、Hibernateの3つのO/Rマッピングツールの特長を表1にまとめました。
- iBATIS
- 「SQL Maps」というO/Rマッピング機能と、「DAO Framework」というDAOパターン用のフレームワークで構成されている。マッピング・ファイルにSQL文を記述する必要がある。
- Torque
- Active Recordパターン(エンティティが「O/Rマッパー」の基底クラスを継承する)に基づいているタイプのフレームワークで、SQL文を記述せずにデータベースにアクセスすることができる。バージョン3.1からGenerator(開発環境)とRuntime(実行環境)がモジュール分割されている。
- Hibernate
- 機能が豊富にあり、オブジェクトクエリ言語の「HQL」や、シンプルで扱いやすいAPIを提供する。
iBATISの最大の特長は、マッピング・ファイルにSQL文を記述することです。「第2回:SQLを直接記述できるiBATIS(前編)」「第3回:SQLを記述しない『Torque』」では、基本的なSQL文は自動生成されたマッピング・ファイルのSQL文をそのまま使用しましたが、内部結合を行うSQL文はマッピング・ファイルに直接記述しました。
Torqueの最大の特長は、SQL文を使用せずにデータベースにアクセスできる点です。
「第4回:SQLを記述しない『Torque』」では、Torqueで用意されている各メソッドやCriteriaクラスを使用してSQLを一切記述することなくデータベースにアクセスしました。
Torqueで用意されているAPIを使用することで、TorqueがSQL文を自動的に組み立ててくれるのでSQLレスの開発が可能となります。
一方、Hibernateの最大の特長は多機能であることです。「第5回:多機能なHibernate(前編)」「第6回:多機能なHibernate(後編)」ではiBATISやTorqueにない機能の1つとしてオブジェクトクエリ言語の「HQL」を紹介しました。「HQL」はオブジェクトをベースに考えられているので、オブジェクトをベースとした検索が可能となります。またHibernateでは、Criteriaクラスを使ったデータベースアクセスも可能です。
連載バックナンバー
Think ITメルマガ会員登録受付中
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。