注目の書籍

好評発売中!

iOS/Android/Windowsプログラミング

1冊で3大スマホOSの
基礎とプログラミング テクニックがわかる!
サンプルアプリも用意

ソフト開発

EJB3.0入門講座

日経ソフトウエア

第3回 Java標準のO/Rマッピング機能「Java Persistence API」

2006/06/29
中村 年宏=株式会社豆蔵勤務 システムエンジニア
出典:日経ソフトウエア2006年5月号  148ページより
(記事は執筆時の情報に基づいており、現在では異なる場合があります)

 前回はEJB 3.0のインターセプタ機能を使ったセッションBeanとコンテナ管理によるトランザクションについて説明しました。今回はJava EE(Enterprise Edition)やJava SE(Standard Edition)におけるO/Rマッピングの標準になる「Java Persistence API」*1を紹介しましょう。

 Java Persistence APIを使うメリットは大きく二つあります。一つ目は,少ないプログラム・コードでデータにアクセスできることです。Java Persistence APIは,Javaオブジェクトをデータベースに格納したり,データベースのデータをJavaオブジェクトへ変換したりする処理を自動化してくれます。したがって,データベース・アクセス用のAPIであるJDBCを直接使ったアプリケーションよりも少ないプログラム・コードでデータベースへのアクセスを実現できます。

 二つ目のメリットは,移植性の高いアプリケーションを作成できることです。通常,使用するデータベースが異なると,製品固有のSQLに依存したコードがネックになり移植が難しくなります。Java Persistence APIはデータベース製品間の違いの多くを吸収してくれるため,高い移植性を保てます。

 Java Persistence APIを理解するには,まず主要な登場人物を覚えることが重要です。「エンティティ」「エンティティ・マネージャ」「永続コンテキスト」「EJB QL」の四つです。エンティティとはデータベースに永続化可能なJavaオブジェクトです。エンティティのクラスは通常のJavaクラスにアノテーション(注釈)や設定ファイルでエンティティであることを示して作成します*2。エンティティ・マネージャはJava Persistence APIにより提供されるインタフェースで,エンティティの取得や永続化を行うAPIを持ちます。永続コンテキストはメモリー上のエンティティの集合です。これはJava Persistence APIの実装によって管理されます。EJB QLはエンティティを取得するための問い合わせ言語です。記述方法はSQLに似ていますが,特定のデータベースに依存しません。

 Java Persistence APIを利用したアプリケーションは図1のようになります。Java EEとJava SEのどちらでも基本的に構成は変わりません。

図1 Java Persistence APIを利用するアプリケーションのイメージ [画像のクリックで拡大表示]
>>Java Persistence APIに特有の考え方に注意しよ...
次ページ以降はITpro会員(無料)の方のみお読みいただけます。
会員の方は、 ログインしてご覧ください。
まだ会員でない方は、ぜひ登録(無料)していただき、ITproの豊富なコンテンツをご覧ください。

この記事に対するfacebookコメント

nikkeibpITpro

読みましたか? 〜 未読記事をご紹介