それぞれのメリット/デメリット

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を提供する。

表1:iBATIS、Torque、Hibernateの特長

   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クラスを使ったデータベースアクセスも可能です。


株式会社ビーブレイクシステムズ Javaスペシャリスト
前職ではJavaを用いたシステム開発をメインに作業を行う。更なるキャリアアップを目指し、実力次第で上流工程に携われるビーブレイクシステムズに転職。現在はJavaアーキテクトとして活躍中。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています