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

O/Rマッピング→DBのレコードをデータマッピングクラスの1つのインスタンスとして扱う。

JAVAのO/Rマッピング→フィールドに対応するsetter/getterメソッドを持つクラスを介してDBテーブルを扱う。
いいこと
  • フィールドにデータを保持したオブジェクトをそのまま保存できる
  • データをjavaクラスのインスタンスとしてまとまった形で取り出せる。
setter/getterメソッドを持つクラスの形式はJavaBeansの標準的な規約の為けっこういろんなユーティリティーやフレームワークを利用する際に便利。

メジャーなO/Rマッピングソリューション
→Entity Bean
EJB(Enterprise Java Beans)の仕様で定義されるEnterprise Beanの一種でEJBオブジェクトによってデータエンティティを表現する。
EJB QLというクエリ言語を使う。

EJBの機能
  • トランザクション管理機能
  • セキュリティ管理
EJBの問題点
  • シンプルなマッピングソリューションではない
  • 重い
  • デプロイのための決まりごとがめんどくさい
  • 上記の理由によりテストが容易でない
  • SQLの確認が困難 (自動発行されるため)
でも、もともとEJBはO/Rマッピングそのもののためのものじゃないからしょうがないのだ。

サンのO/Rマッピング仕様「JDO」
JDO→Java Data Objects

JDOではAPIのみ提供してるので実装はベンダにゆだねられている。
こんなフレームワークがJDOに準拠している
  • TopLink
  • Castor
  • ObjectRelationalBridge
  • LiDO
  • JDO
JDOのいいところ
JDOが提供するO/Rマッピングの仕組みはサーバに依存しない。
ObjectとRDBのマッピングだけではなくODB・ERPに対してのAPIも定義している。

JDOのアーキテクチャ
PersistenceManager:
JDOアーキテクチャの中心。
PersistenceManagerの各種メソッドによってobjの永続化や取得を行う。QueryインターフェースやTransactionインターフェースのインスタンスを返すFactoryの役目もある。

PersistenceManagerFactory:
PersistenceManagerのインスタンスを生成するためのFactoryの役目を果たす。

PersistenceCapable:
永続化オブジェクトに実装されるべきメソッドを定義する。
JDOではこの

。。。。