Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)
JPAを利用したアプリケーションを使用すると,次に示すことが実現できます。
ここでは,JPAを使用しない場合とJPAを使用する場合のデータアクセスモデルを比較して,JPAを使用したアプリケーションの利点を説明します。
JPAを使用しない場合,J2EEアプリケーションからデータベースにアクセスするには,一般的に,次の図に示すようなデータアクセスモデルを使用してアプリケーションを作成します。
図5-1 JPAを使用しない場合のデータベースアクセスモデル
上記の図について説明します。
図の場合のデータアクセスモデルでは,SQLをビジネスロジックから隠ぺいするために,テーブルに対応するDAOと呼ばれるクラスを作成します。DAOクラスの中に,JDBCインタフェースでSQLを発行する処理を作成します。図の流れについて説明します。
このようなデータアクセスモデルでは,データベースのデータモデルが大きく複雑になると,作成しなければならないDAO,SQL,DTOクラスの量も多くなります。DAO,SQL,およびDTOの作成は単調な手作業のため,アプリケーション開発の生産性を低下させる原因となります。
JPAを使用した場合のデータアクセスモデルは次に示す図のようになります。
図5-2 JPAを使用した場合のデータベースアクセスモデル
JPAを使用した場合,データベースのテーブルの行に対応したクラスを作成します。これを,エンティティクラスといいます。ビジネスロジックを記述してあるEJBでは,このエンティティクラスのオブジェクトを直接データベースに格納するかのように,処理を記述できます。
図について説明します。
このように,JPAを使用するとDTOを作成する必要はありません。また,エンティティクラスは,Eclipseなどの開発ツールを使用してデータベースのテーブルスキーマから自動的に生成することもできます。従来のデータアクセスモデルで生産性を低下させる原因となっていたDAO,SQL,DTOを作成する必要がないため,従来よりもアプリケーションの生産性を向上させることができます。
なお,エンティティクラスおよびJPAプロバイダについては,「5.2.2 エンティティクラスとは」および「5.2.3 JPAプロバイダとは」を参照してください。
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.