仕事でDBへのアクセエスにO/Rマッピングを使おうと言うことになって、色々と検討した挙げ句iBATISを使うことにしました。
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マッピングツール。 |
この中で一番メジャーなのはHibernateだと思うんですが、今回はiBATISを選択しました。
というのも、やはりSQL文を記述しないというのは、結構リスクが高いと思うのです。
DBへのアクセスが頻繁に発生して、かつ利用ユーザ数も多いシステムであればあるほど、DB部分のチューニングが必要になってくるわけで、SQLを記述しないタイプのO/Rマッピングだと、後々のメンテナンスで痛い目にあいそうな気がしたからです。
で、SQLがXMLファイルに直接記述できるiBATISを選択したのですが、正解だったかなぁと思ってます。
今回の構築では、開発期間が短かったこともあり、さらりそしか使ってませんが、もう少しiBATISの勉強をして色々と良さを理解していきたいなぁと思いました。
難点を挙げるとするとまだ日本語のドキュメントがそれほどない点ですね。
O/Rマッピングでどの製品を使おうか迷っている方は、是非検討する製品の一つに加えてみてください。