O/Rマッピングとは
O/Rマッピングは、「オブジェクト」と「リレーショナルデータベース」をマッピングすることを意味します。
O/Rとは、「Object/Relational」の略で、オブジェクトとリレーショナルデータベースのデータの間をマッピングする技術です。データベースのテーブルにあるデータをプログラミング言語のオブジェクトに変換したり、逆にプログラミング言語のオブジェクトをデータベースのテーブルデータに変換したりする機能を提供します。
また、従来のJDBCを利用した開発ではデータベースにアクセスする際、SQL文などを直接ソースコードに埋め込むことがほとんどです。そのため、テーブル構造の変更が発生した場合埋め込んだソースコードを修正しなければならないのでSQL文がソースコードの様々な場所に記述されていると、修正漏れや修正間違いといった問題を常に意識しながら開発しなければなりません。
そして、これらの問題を解決するために考えられたのがO/Rマッピングです。
O/Rマッピングの基本的な流れ
O/Rマッピングの機能は個々のソフトウェアによって異なりますが、基本的には以下のような機能を提供します。
1.コネクション管理機能
データベースとの接続やコネクションプーリングが管理できるようになる。
2.自動マッピング機能
XMLファイルなどの外部ファイルにオブジェクトの属性名とテーブルの列名に関するマッピング定義を設定することによって自動的にマッピング処理を行ってくれます。
3.マッピングファイル、DTO、DAOの自動生成機能
O/Rマッピングツールの提供する自動生成ツールによってマッピングファイル、DTO、DAOといったファイルを自動で作成してくれます。
4.接続情報の管理機能
JDBCドライバやデータベースの接続情報を、O/Rマッピングツール側で管理してくれます。
5.キャッシュ機能
一度取得した検索結果をメモリ上に保持しておいて、同じ検索処理が行われた場合は、メモリ上にある検索結果を返します。これによって、データベースへのアクセスを減らし、パフォーマンスがあがります
一般的な「O/Rマッピング」は以下のような流れで処理を行います。
1.データベースの接続情報をXMLファイルに定義(データベース設定ファイル)
2.クラスのフィールドとテーブルカラムの対応付けをXMLファイルに定義(マッピングファイル)
3.O/Rマッピングフレームワークがデータベース設定ファイルとマッピングファイルを読み込んで自動的にマッピング処理を行う
4.O/Rマッピングフレームワークがクラスのフィールドとテーブルカラムのマッピングを処理する
5.アプリケーションからO/Rマッピングフレームワークの提供するAPIを用いてデータベースへアクセスし、検索、登録、削除、更新処理を行います。