estocdb (0.4) | 2009-02-26 14:37 |
Object-relational mappingの略でORM O/RM と表記します。 一般的にはプログラム上のObjectとリレーショナルデータベースのデータの橋渡しをする仕組みを指します。 http://ja.wikipedia.org/wiki/ORM
組み込み型DBを想定した、非常に軽量でシンプルなORMです。 Javaのライブラリとして提供されます。 データとオブジェクトのマッピング・テーブルの作成が手軽に行えます。
JavaのクライアントアプリでちょっとDBを使ってみたい、という時に最少の学習コストで最低限のDBアクセスができる事を目的としています。 とにかく学習コストが少ないものを目指します
DerbyやH2の普及によって、ちょっとしたアプリケーションでもデータベースを使用しやすくなってきました。 一方、Javaでは数多くのORMが知られていますが、そのどれもが組み込みとして手軽に使うには若干の問題を持っていました。
Hibernateはもはや重量級で、使用を開始するのにはそれなりの準備と心構えが必要です
iBATISはHibernateに比べ十分軽量なのですが、設定ファイルなどを用意するのはやはり面倒です
S2DAOは良い選択だと思いますが、手軽にちょっと試してみるというほど簡単ではありません
ActiveObjectsはまさに手軽さを目指して作られているORMです。代理キーを使う事を前提にしていなければ私はこれを使用しestoc.dbを作ろうとは思わなかったでしょう。
JaQu(H2に付属のORM)はこれらの問題を解決してくれると信じていますが、ドキュメントが少なく敷居が高いことは否めません
テーブル構造(エンティティ)をclassとして定義することで
・テーブルの作成 ・・・組み込みDBは初期化時にプログラムでテーブルを作成しなければならない事が多く、この為だけに使ってもよいくらいです
・データの取り出し(SELECT)
・データの挿入(INSERT)
・データの更新(UPDATE)
・データの削除(DELETE)
を補助します
・データのマッピング 任意のSELECT結果をJavaObjectにセットすることができます
組み込み型DBの DerbyとH2に対応しています
また、 Oracle、MySql、Postgresqlでも使用可能です
~流れ~
*まずはサンプル(説明を読むよりコードを見た方が早い人はこちら)
*準備
*テーブル定義
*テーブル作成
*データ操作