スキーマのzipファイルをダウンロードしてインストールします。このチュートリアルでは、Fusion Order Demo(FOD)スキーマに含まれる表をいくつか使用します。ウィザードを使用して短時間でアプリケーションとプロジェクトを作成し、データベースに接続します。
詳細を表示/非表示詳細表示
目的 所要時間 アプリケーション
このチュートリアルでは、JPAエンティティやJava EEコンテナ外部で実行するシンプルなJavaサービス・ファサードを使用したJPAアプリケーションを構築する方法について説明します。これから作成するアプリケーションの完成版を確認するには、「Download」ボタンをクリックして最終アプリケーションのzipファイルをダウンロードし、JDeveloperのmyworkフォルダに解凍します。 30分 Download productsapplication.zip
注:アプリケーションの完成版をダウンロードした場合は、詳細を表示/非表示詳細表示
ステップ1:スキーマのインストール
    チュートリアルの手順と例は、Fusion Order Demo(FOD)スキーマに含まれる複数の表に基づいています。このスキーマは、Oracle JDeveloper 11gに付属しているサンプル・アプリケーションのデータベースとして、さらに、このリリースの他の補足情報としても使用されます。詳細を表示/非表示詳細表示
  1. OTNからschema.zipファイルをダウンロードします。schema.zipのダウンロード

  2. ファイルを適切な場所(c:\tempなど)に解凍します。

  3. Fileメニューから「Open」を選択します。ワークスペースc:\temp\Infrastructure\Infrastructure.jwsを開きます。

  4. プロジェクトを移行するよう指示されたら、「Yes」をクリックして確定します。次に「OK」をクリックします。

  5. アプリケーション・ナビゲータで、「MasterBuildScript」プロジェクトを展開します。Resourcesの下にある「build.properties」をダブルクリックして、エディタで開きます。

  6. build.propertiesファイルに適切な値を設定します(jdeveloper.homeと、jdbc.*およびdb.*のすべてを設定)。他のプロパティは、すべてデフォルト値のままにしておきます。demoユーザーの名前をFODにする必要があります。

    関連する設定は、次のとおりです。

    設定 説明
    jdeveloper.home JDeveloperがインストールされている/jdeveloperディレクトリ(例:c:/JDeveloper_11/jdeveloper/
    jdbc.urlBase データベースのベースURL(例:jdbc:oracle:thin:@localhost
    jdbc.port データベースのポート番号(例:1521
    jdbc.sid データベース・システムの識別子(例:XEまたはORCL
    db.adminUser 管理者権限を持つデータベース・ユーザー(例:system
    db.demoUser.tablespace FODユーザーをインストールする表領域の名前(例:USERS
  7. MasterBuildScriptプロジェクトで、「build.xml」ファイルを選択します。

  8. Structureウィンドウで、「refreshSchema」ターゲットを右クリックして、「Run Target "refreshSchema"」を選択します。

  9. 入力の指示が表示されたら、管理者権限を持つデータベース・ユーザーのパスワードを入力します。Antタスクの実行後、JDeveloper Logウィンドウでbuild successfulメッセージを確認できます。

    Apache Ant Logウィンドウ

    エラーがある場合、データベースが実行中であるかどうか(SQL*Plusで接続を試みます)、build.propertiesファイルに設定した値が正しいかどうかを確認する必要があります。また、指定したDBAユーザーにCREATE USER権限があることも確認してください。

ステップ2:新規アプリケーションとプロジェクトの作成
  1. メイン・メニューから「File」→「New」を選択します。New Galleryで「General」カテゴリを展開し、「Applications」を選択します。Itemsリストで「Custom Application」を選択し、「OK」をクリックします。

    New Gallery、Applications
  2. JDeveloperアプリケーションは、組織構造の最上位レベルです。アプリケーションの開発中に、操作しているオブジェクトの情報がここに格納されます。詳細を表示/非表示詳細表示
  3. この例に合わせるため、アプリケーション名としてProductsApplicationと入力します。

    New Application Dialog
  4. 初期プロジェクト構造(アプリケーションの作業領域内にある名前付きプロジェクト・フォルダ)および追加されるアプリケーション・ライブラリは、選択したアプリケーション・テンプレートによって決まります。詳細を表示/非表示詳細表示
  5. デフォルト値のままにして、「Finish」をクリックします。

    アプリケーション・ナビゲータのProjectsパネルは、次のように表示されます。

    アプリケーション・ナビゲータ

  6. テンプレートから作成された新規アプリケーションは、プロジェクト階層に分割されてアプリケーション・ナビゲータに表示されます。各プロジェクトには関連する機能が設定されています。詳細を表示/非表示詳細表示
ステップ3:データベース接続の作成

インストールしたデータベースへの接続を確立し、Fusion Order Demo(FOD)のスキーマを使用できるようにします。

  1. メイン・メニューから「File」→「New」→「General」→「Connections」→「Database Connection」の順に選択し、「OK」をクリックしてCreate Database Connectionダイアログを開きます。

    New Gallery、Connections、Database Connection
  2. Create Connection Inオプションとして選択されていない場合は、「Application Resources」を選択します。

  3. 接続の名前を入力し、接続タイプを選択して、ユーザー名とパスワードを入力します。この例では、接続名にFOD、ユーザー名にfodを使用します。

    Create Database Connectionダイアログ
  4. Oracle JDBC Settingsに値を入力して、使用するデータベースのホスト、ポート、SIDを指定します。

    Create Database Connectionダイアログ、下部
  5. Test Connection」をクリックして、接続可能であることを確認します。接続に成功したら、「OK」をクリックします。

  6. アプリケーション・ナビゲータで、「Application Resources」パネルを展開し、「Connections」ノードと「Database」ノードを展開して、データベース・オブジェクトを表示します。

    アプリケーション・ナビゲータ、Application Resourcesパネル
  7. 作成したデータベース接続(例:FOD)がアプリケーションのリソースとして、ConnectionsDatabaseノードの下に設定されました。詳細を表示/非表示詳細表示
ステップ4:表からのJPAエンティティの作成

Enterprise JavaBeans(EJB)3.0仕様には、軽量Javaオブジェクトの作成、削除、問合せをおこなうためのAPIであるJava Persistence API(JPA)と呼ばれる永続化仕様が追加されています。EJB 3.0仕様は、"beans"としてエンティティを参照しません。JPAエンティティを参照します。

JPAエンティティの作成を開始するには、Create Entities from Tablesウィザードを起動します。

    Java Persistence API(JPA)は、Javaの永続性を大幅に簡素化します。Javaオブジェクトをリレーショナル・データベース表へ宣言的に定義する、標準的かつ移植性の高いオブジェクト・リレーショナル・マッピング・アプローチを提供します。このアプローチは、Java EE 5アプリケーション・サーバーの内部およびJava Standard Edition(Java SE)5アプリケーションのEJBコンテナ外部の両方で動作します。詳細を表示/非表示詳細表示
  1. アプリケーション・ナビゲータで、作成したプロジェクトを右クリックして、「New」 > 「Business Tier」 > 「EJB」 > 「Entities from Tables」を選択します。その後「OK」をクリックして、Create Entities from Tablesウィザードを立ち上げます。

    New Gallery、EJB、Entities from Tables
  2. ステップ1のVersionウィザードで、「EJB 3.0 -- JPA Entities」を選択します。「Next」をクリックします。

    Create Entities from Tablesウィザード
  3. ステップ2のPersistence Unitウィザードでは、新しいユニットを作成しないでください。「Next」をクリックします。

    Persistence Unitウィザード
  4. ステップ3のType of Connectionで、「Online Database Connection」を選択します。「Next」をクリックします。

  5. ステップ4のDatabase Connection Detailsでは、Connectionドロップダウン・リストでFODが選択されているかどうかを確認します。「Next」をクリックします。

  6. ステップ5のSelect Tablesで、「Query」をクリックし、Availableリストを追加します。 リストからPRODUCTS_BASEを選択し、「blue right arrow」をクリックしてSelectedリストに追加します。「Next」をクリックします。

    Select Tablesウィザード
  7. ステップ6のGeneral Optionsでは、デフォルトのパッケージ名をそのまま使用します。 Entity Class Optionsで、次のオプションが設定されているかを確認し、「Next」をクリックします。

    オプション
    フィールド selected
    Implement java.io.Serializable Interface selected
    Generate @NamedQuery Annotation to Retrieve All Instances selected
    General Optionsウィザード
  8. ステップ7のSpecify Entity Detailsで、FOD.PRODUCTS_BASE表のデフォルトのエンティティ名とクラスを受け入れます。「Finish」をクリックします。

    Specify Entity Detailsウィザード
  9. the save all iconSave Allをクリックして作業内容を保存します。

    表のエンティティの作成ステップが完了すると、Oracle JDeveloperによりEJBログ・ウィンドウにメッセージが表示されます。

    EJBログ・ウィンドウ
  10. プロジェクトのすべてのフォルダが展開されると、アプリケーション・ナビゲータは次のように表示されます。詳細を表示/非表示詳細表示
ステップ5:Javaサービス・ファサードと永続性ユニットの生成
    永続性ユニットは、配置されたプロジェクト(EJB JARファイルまたはWARファイル)に含まれているエンティティのサブセット(すべての場合もあります)を識別します。詳細を表示/非表示詳細表示
  1. アプリケーション・ナビゲータで、Application Sourcesに続けてMETA-INFを展開し、persistence.xmlを右クリックします。そして、New Java Service Facadeを選択し、Create Java Service Facadeウィザードを立ち上げます。

    New Java Service Facadeコンテキスト・メニュー項目
  2. ウィザードのステップ1であるJava Service Classで、Javaサービス・クラスの名前をproject1.ProductsJavaServiceFacadeに変更します。これは、別のJavaサービス・ファサードが生成される場合に変更を上書きしないようにするためです。

    Create Java Service Facadeウィザード
  3. Generate a Sample Java Clientの選択を解除します。「Next」をクリックします。

    セッション・ファサードとは異なり、Javaサービス・ファサードはコンテナ内部で実行されないので、メソッドを呼び出すために別のサンプル・クライアントを作成する必要はありません。Javaサービス・クラスのmain()メソッドを追加して、独自のクライアントとしてJavaサービス・ファサードを使用できます。

  4. ウィザードのステップ2であるCreate Persistence Unitで、永続性ユニット名にProject1-Outsideと入力します。 JDBC Connectionが選択され、作成したデータベース接続(例:FOD)がドロップダウン・リストで選択されていることを確認します。「Next」をクリックします。

    Create Persistence Unitウィザード
  5. この例では、同じエンティティのコンテナの外部で実行される永続性ユニットを作成します。詳細を表示/非表示詳細表示
  6. ステップ3のJava Service Facade Methodsで、両方のノードを展開してすべてのメソッドが選択されていることを確認します。次に、「Finish」をクリックします。

    Javaサービス・ファサード・メソッド
  7. エンティティの下のメソッドは名前付き問合せで、エンティティを作成およびアップデートします。詳細を表示/非表示詳細表示
  8. the save all iconSave Allをクリックして作業内容を保存します。

    永続性ユニットとJavaサービス・ファサードの作成ステップが完了すると、IDEは次のように表示されます。

    アプリケーション・ナビゲータ、Javaソース・エディタ

    Oracle JDeveloperにより、ProductsJavaServiceFacade.javaファイルがソース・エディタ内で開きます。Javaサービス・クラスには、ファサードでの公開を選択したメソッドが含まれます。

  9. アプリケーション・ナビゲータで、persistence.xmlをダブルクリックして概要エディタのファイルを開くと、2つの永続性ユニットを確認できます。詳細を表示/非表示詳細表示
ステップ6:Javaサービス・ファサードの実行
  1. まだ開いていない場合は、アプリケーション・ナビゲータで「javanode iconProductsJavaServiceFacade.javaをダブルクリックして、Javaソース・エディタで開きます。 実行可能なJavaサービス・ファサードを作成するには、main()メソッドを追加します。

    アプリケーション・ナビゲータ
  2. ソース・エディタで、次のパブリック・メソッドの後に、製品名のリストをプリントアウトするmain()メソッドを追加します。

    public ProductsJavaServiceFacade(){...}

    次のコードをコピーアンドペーストします。

  3. アプリケーション・ナビゲータで、「javanodeアイコンProductsJavaServiceFacade.javaを右クリックし、「Run」を選択します。

    Runをクリックすると、JDeveloperは始めにプロジェクトを保存し、コンパイルします。 コンパイルの詳細がMessages Logウィンドウに表示されます。 Running Logウィンドウを開き、Java EEコンテナの外部で実行されるクラスの実行結果を確認します。そして、製品名のリストが返されます。

    出力を表示するプロジェクト実行ログ・ウィンドウ

まとめ
このチュートリアルでは、JPAエンティティやJava EEコンテナ外部で実行するシンプルなJavaサービス・ファサードを使用したJPAアプリケーションを構築します。このチュートリアルで学習した内容は、以下のとおりです。 Java EEアプリケーションおよびJDeveloperの開発に関する詳細は、下記のWebサイトを参照してください。


ブックマーク 印刷 すべて表示 | すべて非表示
トップへ戻る

このページはお役に立ちましたか。

Copyright © 2011, Oracle and/or its affiliates. All rights reserved.