*EJBの作成 [#w896d58b]
(工事中)
エンタープライズアプリケーションでは、通常データをデータベース(DB)に保存する。~
Java EEでDBとデータのやり取りをするには、Java Persistence API(JPA)を使用する。~
JPAでは、テーブルの各行をオブジェクトに対応させるEntityを作成する。~
なお、JDKやGlassFishには標準でデータベース(JavaDB,Derby)が付属しているので、データベースのインストールは不要である。~
他のデータベース製品を使用するときのみ、インストールを行い設定する。~
Enterprise JavaBeans (EJB) はJava EEの中核で、アプリケーションサーバー等のEJBコンテナで管理・実行される。~
EJBは外部のサーバー等からのリモート呼び出し機能を備える。~
~
ファイル→新規ファイルからEntityを作成する。~
プロジェクトに-ejbの名前のプロジェクトを選び、カテゴリ:持続性のファイル・タイプ:エンティティ・クラスを選択し、次へ。~
JPAでデータの操作を行うSession Beanを作成する。Session Beanとはロジックの処理を行うEJBである。~
~
ファイル→新規ファイルからEJBを作成する。~
プロジェクトに-ejbの名前のプロジェクトを選び、カテゴリ:エンタープライズJavaBeansのファイル・タイプ:セッションBeanを選択し、次へ。~
#ref(ejb1.gif)^
~
EJBの名前とパッケージ名を入力し、終了。~
~
セッションのタイプは次の通りである。~
ステートレス:状態を持たない。使い終わったインスタンスを使いまわす。~
ステートフル:状態を持ち、各インスタンスはクライアントと1対1である。~
シングルトン:インスタンスはアプリケーションに1つ。~
~
インターフェースのタイプは次の通りである。~
ローカル:このアプリケーションからEJBを呼び出すインターフェースを作成する。(なくても可)~
リモート:別のアプリケーションからEJBをリモート呼び出しをするためのインターフェースを作成する。~
#ref(ejb2.gif)^
~
ソースコードの枠が自動生成される。~
ステートレスBeanを表すアノテーション@Statelessが付加されている。~
また、ローカルからの呼び出し可能を表す@LocalBeanが付加されている。~
#ref(ejb3.gif)^
~
JPAを使用してDBにアクセスするコードを入力する。~
EntityManagerはDBへのアクセス機能を提供するクラスである。~
EntityManager型のフィールドに@PersistenceContextアノテーションを付加しておくと、コンテナによってインスタンスを自動的に注入される。~
unitNameに以前作成した、永続ユニット名EnterpriseApplication-ejbPUを指定する。~
~
readMessagesメソッド~
まず、EntityManagerのcreateNamedQueryメソッドで以前@NamedQueryアノテーションで定義したクエリを取得する。~
第1引数はクエリ名、第2引数はクエリ結果のクラスである。~
次に、クエリの実行結果を取得する。~
~
writeMessageメソッド~
EntityManagerのpersistメソッドでデータをDBに挿入する。(永続化という)~
~
トランザクションの処理はコンテナが自動的に行う。~
~
#ref(ejb4.gif)^
~

~
*コメント [#sef51365]
#comment


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS