公開[眞野寿彦,株式会社メセナ・ネットコム]前回の「MySQLの常識を知りセットアップしてJSPからDB操作」では、アプリケーション開発におけるデータベースとの連携と、その仕組みを説明しました。今回は、データベース操作において重要なO/Rマッピングや、長らく連載で触れながら説明できなかった、MVCモデルの「Model」の部分であるBeanについて説明していきます。今回も引き続きMySQLを使用するので、環境作成がまだの読者は前回の記事を参照しておいてください。お待たせしました、Beanとは?Beanとは、簡単にいうと「部品化されたプログラム」のことです。前回でいえば、「LoginForm.java」がBean(JavaBeans)に当たります。Strutsでは、このBeanを「アクション・フォームBean」といい、フォーム画面から送信されてくるデータの保持や、ほかのプログラムからのデータを参照する機能を持っています。前回のサンプルプログラムをMVCモデルに当てはめると、以下のようになります。前回のサンプルプログラムとMVCモデル前回のプログラムでは、Webブラウザの「Login01.jsp」であるログイン画面より「ログインID」と「パスワード」の値(property)を取得します。MVCモデル、Controller「LoginAction.java」でModelの「LoginForm.java」とデータを保持、操作して、データベースより値を取得します。前回は、「ログインID」の値により列「password」「name」を取得して「LoginForm.java」に保持しています。「LoginForm.java」の保持された情報をController「LoginAction.java」で操作した後、Viewである「Login02.jsp」とModelの「LoginForm.java」を組み合わせて画面としてWebブラウザに返しているのです。これで、MVCモデルの「Model」の動作についても分かっていただけたかと思います。それでは次に、Modelであるアクション・フォームBeanについてソース(LoginForm.java)から解説します。アクション・フォームBeanの動作を行うクラスは、「ActionForm」のクラスを継承する必要があります。{アクション・フォームBeanには、プロパティのデータを保持する変数を宣言して、データの保持・参照を行うためのメソッド(アクセサメソッド)を指定する必要があります。property="XXX"/>」などの属性「property」に指定された値となります。name;}これで、Modelであるアクション・フォームBeanの知識も高まり、Beanを上手く操作できるようになったかと思います。DataBase)をマッピングする技術です。具体的にいうと、Javaで開発されたアプリケーションで用いられるオブジェクトのプロパティ(属性)と、RDBで定義されているテーブルのカラム列をマッピングさせることです。通常マッピングする際、Javaプログラムはオブジェクト構造で表現し、RDBは正規化されたリレーショナルモデルが原則となるため、このオブジェクトとリレーショナル間のモデルが違ってきてしまいます。この違いを「インピーダンス・ミスマッチ」といいます。kwoutO/Rマッピングは、このオブジェクトとリレーショナルのモデルの違いを対応付けて変換実行させていきます。O/Rマッピングのイメージは、以下のようになります。O/RマッピングのイメージO/Rマッピングの利点としては、XMLファイルなどにマッピング情報を記述すると、テーブルとマッピングすべきクラスなどのソースが自動生成でき、プログラム作成作業が軽減されます。Language)」を書かなくてもRDBへのアクセスが可能になるので、煩雑になりやすいプログラムコードを書く必要がなくなり、バグなどのリスクも軽減されます。XMLファイルを大量に書くことによる負担もあったり、SQL文でDB情報を取得した方が効率的な場合やパフォーマンスが速い場合もあるため、どちらを使うかは仕様によって見極めが必要です。O/Rマッピングのフレームワークには以下のものがあります。RubyでのO/Rマッピングライブラリの1つ。O/Rマッピングツール。SQLは内部で作成するために、データベースを意識せずに済み、プログラムの対応が容易なのが特徴。PHPで使えるO/Rマッピングツールの1つ。オブジェクトからSQLクエリを自動生成する機能と、逆にデータベースから取得されたレコードをオブジェクトにマッピングする機能を提供する。PHP表1以外のO/Rマッピングフレームワークについては、以下の記事も参考にしてください。DBの表構成変更がビジネスロジックに影響するのは、レイヤ設計の失敗が原因だ。SeasarV2のプロダクトにはO/Rマッピングツールも用意されている。O/Rマッピング・フレームワークが注目を集める中、Hibernateに次いでCayenneが関心を呼んでいる。SOA」フォーラム次ページからは、実際によく利用される「Hibernate」を用いてO/Rマッピングをどのように行うのか見ていきましょう。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。