「JavaにおけるO/Rマッピング」の編集履歴(バックアップ)一覧はこちら
「JavaにおけるO/Rマッピング」(2005/09/07 (水) 22:57:04) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
O/Rマッピング→DBのレコードをデータマッピングクラスの1つのインスタンスとして扱う。<br>
<br>
JAVAのO/Rマッピング→フィールドに対応するsetter/getterメソッドを持つクラスを介してDBテーブルを扱う。<br>
<span style="color: rgb(255, 102, 0);">いいこと</span><br>
<ul>
<li>
フィールドにデータを保持したオブジェクトをそのまま保存できる</li>
<li>
データをjavaクラスのインスタンスとしてまとまった形で取り出せる。</li>
</ul>
setter/getterメソッドを持つクラスの形式はJavaBeansの標準的な規約の為けっこういろんなユーティリティーやフレームワークを利用する際に便利。<br>
<br>
メジャーなO/Rマッピングソリューション<br>
→Entity Bean<br>
EJB(Enterprise Java Beans)の仕様で定義されるEnterprise Beanの一種でEJBオブジェクトによってデータエンティティを表現する。<br>
EJB QLというクエリ言語を使う。<br>
<br>
<span style="color: rgb(255, 102, 0);">EJBの機能</span><br>
<ul>
<li>トランザクション管理機能</li>
<li>セキュリティ管理</li>
</ul>
<span style="color: rgb(255, 102, 0);">EJBの問題点</span><br>
<ul>
<li>シンプルなマッピングソリューションではない</li>
<li>重い</li>
<li>デプロイのための決まりごとがめんどくさい</li>
<li>上記の理由によりテストが容易でない</li>
<li>SQLの確認が困難 (自動発行されるため)</li>
</ul>
でも、もともとEJBはO/Rマッピングそのもののためのものじゃないからしょうがないのだ。<br>
<br>
<br>
サンのO/Rマッピング仕様「JDO」<br>
JDO→Java Data Objects<br>
<br>
JDOではAPIのみ提供してるので実装はベンダにゆだねられている。<br>
こんなフレームワークがJDOに準拠している<br>
<ul>
<li>TopLink</li>
<li>Castor</li>
<li>ObjectRelationalBridge</li>
<li>LiDO</li>
<li>JDO</li>
</ul>
<span style="color: rgb(255, 102, 0);">JDOのいいところ</span><br>
JDOが提供するO/Rマッピングの仕組みはサーバに依存しない。<br>
ObjectとRDBのマッピングだけではなくODB・ERPに対してのAPIも定義している。<br>
<br>
<span style="color: rgb(153, 51, 153);">JDOのアーキテクチャ<br>
<span style="color: rgb(0, 0, 0);">PersistenceManager:</span><br style=
"color: rgb(0, 0, 0);">
<span style=
"color: rgb(0, 0, 0);">JDOアーキテクチャの中心。</span><br style=
"color: rgb(0, 0, 0);">
<span style=
"color: rgb(0, 0, 0);">PersistenceManagerの各種メソッドによってobjの永続化や取得を行う。QueryインターフェースやTransactionインターフェースのインスタンスを返すFactoryの役目もある。<br>
<br>
PersistenceManagerFactory:<br>
PersistenceManagerのインスタンスを生成するためのFactoryの役目を果たす。<br>
<br>
PersistenceCapable:<br>
永続化オブジェクトに実装されるべきメソッドを定義する。<br>
JDOではこの<br></span></span><br>
。。。。<br>
<br>
<br>
<br>
O/Rマッピング→DBのレコードをデータマッピングクラスの1つのインスタンスとして扱う。<br>
<br>
JAVAのO/Rマッピング→フィールドに対応するsetter/getterメソッドを持つクラスを介してDBテーブルを扱う。<br>
<span style="color: rgb(255, 102, 0);">いいこと</span><br>
<ul>
<li>
フィールドにデータを保持したオブジェクトをそのまま保存できる</li>
<li>
データをjavaクラスのインスタンスとしてまとまった形で取り出せる。</li>
</ul>
setter/getterメソッドを持つクラスの形式はJavaBeansの標準的な規約の為けっこういろんなユーティリティーやフレームワークを利用する際に便利。<br>
<br>
メジャーなO/Rマッピングソリューション<br>
→Entity Bean<br>
EJB(Enterprise Java Beans)の仕様で定義されるEnterprise Beanの一種でEJBオブジェクトによってデータエンティティを表現する。<br>
EJB QLというクエリ言語を使う。<br>
<br>
<span style="color: rgb(255, 102, 0);">EJBの機能</span><br>
<ul>
<li>トランザクション管理機能</li>
<li>セキュリティ管理</li>
</ul>
<span style="color: rgb(255, 102, 0);">EJBの問題点</span><br>
<ul>
<li>シンプルなマッピングソリューションではない</li>
<li>重い</li>
<li>デプロイのための決まりごとがめんどくさい</li>
<li>上記の理由によりテストが容易でない</li>
<li>SQLの確認が困難 (自動発行されるため)</li>
</ul>
でも、もともとEJBはO/Rマッピングそのもののためのものじゃないからしょうがないのだ。<br>
<hr size="2" width="100%">
<b style=
"color: rgb(255, 102, 0);">サンのO/Rマッピング仕様「JDO」</b><br>
JDO→Java Data Objects<br>
<br>
JDOではAPIのみ提供してるので実装はベンダにゆだねられている。<br>
こんなフレームワークがJDOに準拠している<br>
<ul>
<li>TopLink</li>
<li>Castor</li>
<li>ObjectRelationalBridge</li>
<li>LiDO</li>
<li>JDO</li>
</ul>
<span style="color: rgb(255, 102, 0);">JDOのいいところ</span><br>
JDOが提供するO/Rマッピングの仕組みはサーバに依存しない。<br>
ObjectとRDBのマッピングだけではなくODB・ERPに対してのAPIも定義している。<br>
<br>
<span style="color: rgb(153, 51, 153);">JDOのアーキテクチャ<br>
<span style="color: rgb(0, 0, 0);">PersistenceManager:</span><br style=
"color: rgb(0, 0, 0);">
<span style=
"color: rgb(0, 0, 0);">JDOアーキテクチャの中心。</span><br style=
"color: rgb(0, 0, 0);">
<span style=
"color: rgb(0, 0, 0);">PersistenceManagerの各種メソッドによってobjの永続化や取得を行う。QueryインターフェースやTransactionインターフェースのインスタンスを返すFactoryの役目もある。<br>
<br>
PersistenceManagerFactory:<br>
PersistenceManagerのインスタンスを生成するためのFactoryの役目を果たす。<br>
<br>
PersistenceCapable:<br>
永続化オブジェクトに実装されるべきメソッドを定義する。<br>
JDOではこの<br></span></span><br>
。。。。<br>
<br>
<br>
<br>
表示オプション
横に並べて表示:
変化行の前後のみ表示: