読者です 読者をやめる 読者になる 読者になる

O/Rマッピング

  1. O/Rマッピングとは

JDBC(リレーショナル・データベース(および、ほとんどすべての表形式のデータ)にアクセスするための、標準Java API)を利用した開発方法でデータベースにアクセスする際の問題点。

SQL文などを直接ソースコードに埋め込む

を解決した。

O/Rマッピングとは、「オブジェクト」と「リレーショナルデータベース」をマッピング(対応付け)すること。 実装時のデータベース操作にかかわる煩雑な作業を軽減し、「インピーダンスミスマッチ」を解決 。

インピーダンスミスマッチ??????

javaのようなオブジェクト指向の言語で、リレーショナルデータベースを扱う際は、マッピング作業が大変。
これは思想が違うから。この問題のこと。

f:id:k_ootake:20151126000720p:plain

  • オブジェクト指向→ プログラムをオブジェクトとして設計する。現実世界のモデルに即したものとしてデータモデルに定義。 (部長のクラス、一般社員のクラス、社長のクラスというふうに捉える。この考えでデータベー分けると、カラムがかぶる)

  • データベース→正規化で最適なモデルを定義。現実世界のモデルがどうなっているかではなく、数学的世界の事情に基づく。

表形式のデータをオブジェクト形式のデータに対応付けるマッピングコードを作成しよう!!!

2. O/Rマッピングの基本的な流れ

① 基本的な機能

  • コネクション管理機能(データベースとの接続やコネクションプーリング管理)

  • 自動マッピング機能(XMLファイルなどの外部ファイルにオブジェクトの属性名とテーブルの列名に関するマッピング定義を設定することによって自動的にマッピング処理をする)

  • マッピングファイル、DTO、DAO(プログラムコードを用いて Microsoft Jetエンジン (Accessデータベースとも言われています)に直接接続し、これらオブジェクトを作成し、修正、削除するための オブジェクトモデル )の自動生成機能

  • 接続情報の管理機能

  • キャッシュ機能

②処理の流れ
1. データベースの接続情報をXMLファイルに定義(データベース設定ファイル)
2. クラスのフィールドとテーブルカラムの対応付けをXMLファイルに定義(マッピング・ファイル)
3. O/Rマッピングツールがデータベース設定ファイルとマッピングファイルを読み込んで自動的にマッピング処理を行う
4. アプリケーションからO/RマッピングツールAPIを介してデータベースへアクセス

③メリット

  • 変更に強い

  • インピーダンスミスマッチを解決

  • 自動生成による開発効率の向上

  • データベースの差(sql方言の差)の吸収

④種類

いろいろ。SQL文を明示的に記述する必要があるタイプと、SQL文を記述する必要がないタイプ(つまりsql自動生成)がある。

http://www.atmarkit.co.jp/ait/articles/0106/26/news001.html

https://thinkit.co.jp/free/article/0606/13/1/