連載 [第1回] :
徹底比較!! O/RマッピングツールO/Rマッピングとは?
2006年6月28日(水)
O/Rマッピングのメリット
O/Rマッピングを利用することで煩雑な作業が軽減できると先にも説明しましたが、具体的なメリットとしてみると、次のことがあげられます。
- 変更に強い
- O/Rマッピングを導入することで、ソースコードからデータベースにアクセスする処理の部分を切り離すことがでるので、変更に強くなります。
- インピーダンスミスマッチを解決できる
- O/Rマッピングを導入することで、オブジェクトとリレーショナルデータベースとの構造的な違いを意識することなく開発できます。
- 自動生成による開発効率の向上
- O/Rマッピングの自動生成機能を利用することで、ソースファイルなどの作成の手間が省けるので開発効率があがります。
- データベースの差の吸収
- O/Rマッピングを導入することで、データベースの差(SQL方言の差)を吸収できます。
O/Rマッピングツールの種類
ここまでO/Rマッピングについて述べてきましたが、一言にO/Rマッピングといってもその特徴は各O/Rマッピングツールによってかなり異なっています。例えば、SQL文を明示的に記述する必要があるタイプと、SQL文を記述する必要がないタイプがあります。
SQL文を明示的に記述するタイプのO/Rマッピングツールでは、マッピングファイルなどにSQL文を直接記述します。このタイプは自分でSQL文を記述できるので、SQLの機能を十分に引き出すことができ、SQL文を記述しないタイプと比較して柔軟な対応が可能です。このタイプのO/Rマッピングツールには「iBATIS」があります。
一方、SQLを記述しないタイプのO/Rマッピングツールでは、永続化オブジェクトの属性を変更するだけでレコードのカラム値が変更されます。このとき、O/Rマッピングツール自身がSQL文を自動的に生成して実行します。永続化オブジェクトを操作することでSQLが自動実行されるので、SQLを意識しないでデータベースを操作することが可能です。このタイプのO/Rマッピングツールには「Torque」や「Hibernate」などがあります。
なお、そのほかにもO/Rマッピングツールには以下のような製品があります。
O/Rマッピングツール | 特徴 |
---|---|
iBATIS | SQLMapsとDAOFrameworkという2つのフレームワークで構成されている。SQL文をマッピングファイルに記述する点が特徴。 |
Torque | Generator(開発環境)とRuntime(実行環境)にモジュール分割されており、SQL文を記述せずにデータベースを操作することができる。 |
Hibernate | 機能が豊富にあり、オブジェクトクエリ言語の「HQL」や、シンプルで扱いやすいAPIを提供する。 |
PriDE | 軽量で、高速なO/Rマッピングツール。Active Recordパターン(エンティティがO/Rマッピングツールの基底クラスを継承する)に基づいているのが特徴)。 |
Cayenne | データベースのエンティティをJavaのオブジェクトとして扱うことができ、GUIツールも提供している。 |
OJB | クラス生成は行わず、すべてのマッピング情報をXMLファイルに定義し、その定義を参照しながらデータベースとやりとりを行う。 |
O/R Broker | 開発者が外部の設定ファイルにSQL文を定義し、その設定ファイルを利用してデータベース・アクセスを行うタイプのO/Rマッピング・フレームワーク。 |
Mr. Persister | 開発者がSQL文を使用してデータベースアクセスを行うタイプのO/Rマッピングツール。 |
まとめ
今回は、JDBCでデータベースを扱う場合の問題点、O/Rマッピングの概要、導入のメリット、基本機能、種類と特徴について説明しました。
O/Rマッピングを導入することによって、データベース操作に関わる煩雑な作業を軽減してくれますが、O/Rマッピングには様々な種類が存在し、それぞれ特徴やクセがあります。
次回は、そのO/Rマッピングツールの1つであるiBATISで、実際にサンプルを作成しながら、その機能・特長をみます。
連載バックナンバー
Think ITメルマガ会員登録受付中
Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。