※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

JAVA-RDB めんどくさい処理がたくさん
  • SELECTで取得したRecordSetを分解してオブジェクトに組み立てなおす
  • データのUPDATEやINSERTの際にオブジェクトからデータを取り出してSQL文を構築する
  • DBスキーマが変更されたときアプリケーション内のSQLを広範囲にわたって修正しないといけない
→O/Rマッピングで解決!
Objectとレコードをマッピングすることにより
  • オブジェクトへのデータ取得
  • オブジェクトデータの永続化
といった処理を透過的に行うことができる、まためんどくさい作業も軽減できる。

O/Rマッピングによるマッピング処理
対象オブジェクトを「データベース更新メソッド」の引数に渡すだけで済み、SQLを組み立てるプログラムをかかなくていい。
DBのカラムに変更があってもデータクラスのフィールドを追加するだけで、保存手続きのロジックに大きな変更は発生しない。

どんなO/Rマッピング製品でも検索結果としてはデータがマッピングされたオブジェクトインスタンスを取得できる。

O/RマッピングでSQLが不要になるか?
ならない
実際のO/Rマッピングフレームワークでは内部的にSQLを発行している。パフォーマンスチューニングやデバッグを行う際には必ずSQLをメンテナンスすることになる。

マッピングの解決方法

O/Rマッピングはめんどくさい処理を全部O/Rマッピングフレームワークが引き受けてくれる。

以下マッピングの流れ
  1. あらかじめ、クラスのフィールドとテーブルカラムの対応付け(マッピング)をXMLファイルなどの外部ファイルで定義しておく
  2. O/Rマッピングフレームワークがクラスのフィールドとテーブルカラムのマッピングを処理する。
  3. 開発者はO/Rマッピングフレームワークによって生成されたクラスを用いて、フレームワークの提供するAPIを使って「保存」や「検索」処理を行う。
XMLファイルの記述とかいろいろめんどうに思うかもしれないがO/Rマッピングフレームワークはマッピング定義を記述したファイルから「DBスキーマ」や「クラスのソースコード」を自動生成する仕組みを持っているので、いろいろ楽。

またアプリケーションの外部にマッピング定義を切り出すことによりDBとAPPの結合度を弱めることができる。

いいことばっかり☆