MySQLデータベース用Oracle ADF Business Componentsの開発

このトピックでは、MySQLデータベースを使用するOracle ADF Business Componentsプロジェクトを作成する手順を説明します。データベース実装の違いにより、従う必要のある制限事項が発生することに注意してください。「外部データソースの開発における制限事項」を参照してください。

このトピックの説明は、次の手順で構成されています。

  1. 要件
  2. JDBCドライバのインストールおよびデフォルト・プロジェクト・ライブラリの指定
  3. 新規接続の作成
  4. ADF/BC MySQLプロジェクトの作成
  5. ビジネス・ロジック層のテスト
  6. ADF BC/MySQLプロジェクトのモデリング
  7. 付録: Javadoc

要件

ここでの手順を実行するには、次のものが必要です。

JDBCドライバのインストールおよびデフォルト・プロジェクト・ライブラリの指定

最初のステップはデータベース接続の作成です。JDeveloperではJDBCを使用してデータベースに接続するため、JDeveloperでMySQLのライブラリを使用するように構成する必要があります。まず、MySQL Connector/J JDBCドライバで動作するようJDeveloperを構成し、次に接続を作成する必要があります。

MySQL Connector/Jで使用するJDeveloperの構成

  1. MySQL Connector/J 3.0.11をダウンロードし、JDBCドライバのJARファイルを/jdev/libなどの既知の場所にコピーします。
  2. 「ツール」メニューから「デフォルト・プロジェクト・プロパティ」を選択します。
  3. ツリー・ビューで、「ライブラリ」を選択します。
  4. 右側のペインで「新規作成」を選択します。「ライブラリの作成」ダイアログが表示されます。
  5. ライブラリの名前を「MySQL JDBC」とします。
  6. 場所をユーザー・ライブラリに設定します。
  7. 「クラス・パス」「編集」をクリックします。クラス・パスの編集ダイアログが表示されます。
  8. 「エントリの追加」をクリックします。「パス・エントリの選択」ダイアログが表示されます。
  9. MySQL Connect/J JDBCドライバのJARファイル(mysql-connector-java- -bin.jarなどの名前)へ移動します。
  10. JARファイルをクリックして、「選択」をクリックします。
  11. 「OK」をクリックします。
  12. ソースを解凍した場合、ソース・パスでも同じことを実行します。ソース・コードをここで定義すると、JDBCドライバをデバッグできます。
  13. JavadocへアクセスまたはJavadocを作成済の場合、Javadocでも同じ作業を実行します。Javadocを含めると、JDBCドライバ用Javadocを表示できます。
  14. 「OK」をクリックします。
  15. ライブラリが定義され、「選択済のライブラリ」リストに入ります。そのライブラリをすべてのプロジェクトで定義する必要がない場合、それらを「使用可能なライブラリ」リストへ移動します。
  16. 「OK」をクリックします。

これで、このライブラリをすべてのプロジェクトで使用できます。

新規接続の作成

  1. JDeveloperで「接続」タブをクリックします。
  2. 「データベース」をダブルクリックします。データベース接続の作成ウィザードが表示されます。
  3. 初期画面ページが表示された場合は、情報を確認して「次へ」をクリックします。
  4. 接続名を定義します。
  5. 「接続タイプ」ドロップダウン・リストから「サード・パーティJDBCドライバ」を選択します。
  6. 「次へ」をクリックします。
  7. ユーザー名とパスワードを設定します。パスワードは、MySQL接続用にはデプロイされません。
  8. 「ドライバ・クラス」の「新規作成」をクリックします。「JDBCドライバの登録」ダイアログが表示されます。
  9. 「ドライバ・クラス」フィールドに「 com.mysql.jdbc.Driver」と入力します。
  10. 「ライブラリ」で、前に定義したMySQL JDBCライブラリを選択します。前の手順で定義していない場合、「新規作成」を選択して同じ手順を実行します。
  11. 「OK」をクリックします。
  12. データベースに対するURLを入力します。たとえば、「 jdbc:mysql://localhost/test?」とします。
  13. URLの後に、&ultraDevHack=true&capitalizeTypeNames=true&pedantic=trueと追加します。また、パラメータ&sqlmode=oracleの追加が必要な場合もあります。このパラメータによって、JDBCドライバにOracle 7.xデータベースでSQL機能を使用できます。
  14. 「次へ」をクリックします。
  15. 「接続のテスト」をクリックします。接続に失敗した場合は、次の表を参照してください。
    エラー・メッセージ 考えられる原因
    "Unable to find driver" Javaクラス名のスペルの誤り
    "Error establishing socket" マシン名のスペルの誤り
    "No suitable driver can be found" URLの形式の誤り
    "Login failed" パスワードの誤り
    "Cannot open multiple cursors" MySQL DB接続用のパラメータSelectMethod=cursorを設定
    "Can't start a cloned connection while in manual transaction mode" SelectMethod=cursorのスペルの誤り
  16. 正常に接続された後、「終了」をクリックします。

接続ナビゲータで接続をクリックすると、定義した表、ビューなどをデータベース・ブラウザに表示できます。データベース・ブラウザまたはデータベース接続の詳細は、JDeveloperのオンライン・ヘルプを参照してください。

ADF BC/MySQLプロジェクトの作成

接続が定義されているため、ADFビジネス・コンポーネントを作成できます。Oracleデータベースを使用するビジネス・コンポーネント・プロジェクトを作成したことがある場合は、次の手順を理解しているはずです。違いは、SQLスタイルにSQL92、およびJava型マップを選択することです。また、このプロジェクトで適切なライブラリを使用することも指定します。

これらの手順を実行する前に、次の点に注意してください。

ADF BC/MySQL ワークスペースとプロジェクトの作成

  1. 「ファイル」メニューから「新規作成」を選択します。「新規ギャラリ」が表示されます。
  2. 「アプリケーション・ワークスペース」をクリックします。「アプリケーション・ワークスペースの作成」ダイアログが表示されます。
  3. ワークスペースに名前を付けます。
  4. アプリケーション・テンプレートからWebアプリケーションのデフォルトを選択します。
  5. 「OK」をクリックします。

アプリケーション・ナビゲータに2つの新しいプロジェクト(ModelとViewController)が表示されます。ModelプロジェクトにはADF BCオブジェクトが含まれています。

ADF BCは、MySQLが表内に主キーを定義する方法を認識していないという理由から、ADF BCオブジェクトをそれぞれ手動で定義する必要があります。これは難しくはありませんが、多くのオブジェクトを作成する場合に時間がかかります。最小限の構成として、ADF BCプロジェクトを1つ以上のビュー・オブジェクトと1つのアプリケーション・モジュールで構成します。また、多くの場合1つ以上のエンティティ・オブジェクト、アソシエーションおよびビュー・リンクが必要です。

エンティティ・オブジェクトの作成

  1. 「ファイル」メニューから「新規作成」を選択します。「新規ギャラリ」が表示されます。
  2. 「ビジネス・コンポーネント」カテゴリを選択します。
  3. 「項目」で、「Entity Object」を選択します。
  4. 「OK」をクリックします。「ビジネス・コンポーネント・プロジェクトの初期化」ダイアログが表示されます。これがこのプロジェクトの最初のADF BCオブジェクトである場合、プロジェクトをADF BC用に初期化する必要があります。初期化はプロジェクトごとに1回必要です。
    1. MySQLデータベースへの接続の選択
    2. SQLスタイルを「SQL92」に設定します。
    3. 型マップを「Java」に設定します。
    4. 「OK」をクリックします。
    エンティティ・オブジェクト作成ウィザードが表示されます。
  5. 初期画面ページが表示された場合は、「次へ」をクリックします。
  6. エンティティ・オブジェクト名の作成ページで、使用するデータベース・スキーマ・オブジェクトを選択します。「次へ」をクリックします。
  7. 表内で定義されている列はエンティティ属性ページに表示されます。ここで属性を削除するか、新しい属性を追加できます。表内で定義されていないRowIDという列が表示されている場合、これはADF BCではその表の主キーを検出できないためです。RowIDに基づいた属性は作成できません。「次へ」をクリックします。
  8. 属性の設定ページで、表から主キー属性を選択し、「主キー」をクリックします。
  9. 属性にその他の変更を加え、「次へ」をクリックします。
  10. Javaページでは、必要なあらゆるメソッドまたはImplクラスを作成し、「次へ」をクリックします。ここで何が必要かわからない場合、詳細はオンライン・ヘルプを参照してください。
  11. 生成ページで「次へ」をクリックします。
    注意:
    デフォルトのビュー・オブジェクトは作成できません。次のセクションではビュー・オブジェクトを暗黙的に作成します。
  12. 「終了」をクリックします。

ビュー・オブジェクトの作成

  1. モデル・パッケージを右クリックし、「新規ビュー・オブジェクト」を選択します。
  2. これがプロジェクトの最初のADF BCオブジェクトである場合、プロジェクトをADF BC用に初期化する必要があります。ADF BCプロジェクトの初期化の詳細は、「エンティティ・オブジェクトの作成」を参照してください。
  3. 初期画面ページが表示された場合は、「次へ」をクリックします。
  4. ビュー・オブジェクトの名前を指定するか、デフォルトを受け入れます。これにより、ビュー・オブジェクト名とそれが使用するエンティティ・オブジェクトを関連付けます。たとえば、Departmentエンティティ・オブジェクトに対して、ビュー・オブジェクト名をDepartment Viewにします。
  5. 「次へ」をクリックします。
  6. ビュー・オブジェクトと関連付けるエンティティ・オブジェクトを選択し、「選択済」リストに移動します。
  7. 「次へ」をクリックします。
  8. 適切な属性を「選択済」リストに移動します。
  9. 「次へ」をクリックします。
  10. 必要に応じて属性を変更し、「次へ」をクリックします。
  11. 問合せページでは、必要に応じてSQL問合せを変更し、それが有効かどうかを確認するために問合せをテストできます。ADF BCとMySQLで作成された問合せの間に互換性がないため、エキスパート・モードの問合せをテストすると失敗します。ただし、問合せが有効(SQLワークシートを使用してJDeveloperでテスト可能)な場合、このエラーは無視できます。
  12. 「次へ」をクリックします。
  13. Javaページでは、必要なあらゆるメソッドまたはImplクラスを作成し、「次へ」をクリックします。ここで何が必要かわからない場合、詳細はオンライン・ヘルプを参照してください。
  14. 「次へ」をクリックします。
  15. 「終了」をクリックします。

ビュー・オブジェクトに関連する別の問題が1つあります。ビュー・オブジェクト・エディタを使用する場合、属性マッピング・ページをクリックすると、エラーが発生します。これは、エキスパート・モードの問合せの問題と関連しています。これらの問合せを変更する必要がある場合、属性マップを変更せずに問合せを変更してください。

アソシエーション、ビュー・リンクまたはアプリケーション・モードの作成

MySQLを使用している時点でのアソシエーション、ビュー・リンクまたはアプリケーション・モジュールの作成に特別な指示はありません。これらのオブジェクト型の作成の詳細は、JDeveloperのオンライン・ドキュメントを参照してください。すべてのADF BCアプリケーションでは、アプリケーション・モジュールが必要であることに注意してください。このため、アプリケーションのテスト前にアプリケーション・モジュールが作成されていることを確認します。

ビジネス・ロジック層のテスト

すべてが動作することを確認するには、アプリケーション・モジュールを右クリックし、「テスト」を選択します。ブラウザ接続ダイアログが表示されている場合は、「接続」をクリックします。

ADF BC/MySQLプロジェクトのモデリング

他のデータベースで使用できると同様に、MySQLでもビジネス・コンポーネント・モデラーを使用できます。モデラーで新しいEOを作成する場合、属性に主キーを設定する必要があります。また、アソシエーションまたはビュー・リンクは自動的には作成されません。

付録: Javadoc

MySQL Connector/J用Javadocの作成

MySQL Connector/J用Javadocにアクセスするには、次のようにします。

  1. myworkなどの既知のディレクトリにMySQL Connector/Jアーカイブ(バイナリJARファイルではなく)を解凍します。ファイルは最終的にはmywork/mysql-connector-java-に解凍されます。
  2. JDeveloperを起動します。
  3. 「ファイル」メニューから「新規作成」を選択します。「新規ギャラリ」が表示されます。「ワークスペース」をクリックします。「ワークスペース作成」ダイアログが表示されます。
  4. ワークスペースの名前を「MySQL Connector」とします。
  5. 空のプロジェクトの作成ボックスが選択(デフォルト)されていることを確認します。
  6. 「OK」をクリックします。「プロジェクトの作成」ダイアログが表示されます。
  7. プロジェクトのConnectorをコールします。
  8. 「OK」をクリックします。
  9. Connectorプロジェクトをクリックします。
  10. 「ファイル」メニューから「インポート」を選択します。「インポート」ダイアログが表示されます。
  11. 既存のソースからを選択し、「OK」をクリックします。既存ソースのインポート・ウィザードが表示されます。
  12. 表示されている場合、初期画面パネルの「次へ」をクリックします。
  13. ステップ1の1: 「ソース・ファイルとディレクトリの追加」で「追加」をクリックします。ファイルの選択ダイアログが表示されます。
  14. ファイルの選択ダイアログで、アーカイブを解除したソース(mywork/mysql-connector-java)へ移動し、orgを選択して「開く」をクリックします。
  15. この手順を、comlibで繰り返します。
  16. 「プロジェクト・ディレクトリにファイルをコピー」をクリックします。これは、他ユーザーのコードを使用して元のコードの整合性を確認する場合に便利です。
  17. 「終了」をクリックします。選択したすべてのファイルは、アプリケーション・ナビゲータの「connector」プロジェクトに表示されます。
  18. 「connector」プロジェクトをクリックします。
  19. 「実行」メニューから「Javadoc Connector.jpr 」を選択します。
  20. プロジェクト用のJavadocが作成されます。これをテストするには、Javadocメッセージ・ログの「ドキュメントの表示」をクリックします。

Javadocの最適な使用方法は、そのJARファイルを作成することです。JARユーティリティを使用してコマンド・ラインから実行するか、JDeveloperの開発ツールを使用できます。

  1. 「connector」プロジェクトを右クリックして、「新規作成」を選択します。「新規ギャラリ」が表示されます。
  2. 「カテゴリ」で、「デプロイメント・プロファイル」を選択します。
  3. 「項目」ビューでは、「JARファイル」(クライアントJARファイル、EJB JARファイル、またはTaglib JARファイル以外)を選択し、「OK」をクリックします。「デプロイメント・プロファイルの作成 -- JARファイル」ダイアログが表示されます。
  4. mysql-connector-java--javadocなどのデプロイメント・プロファイルの名前を付け、「OK」をクリックします。「JARデプロイメント・プロファイル」ダイアログが表示されます。
  5. ツリー・ビューで、「ソース元」を選択します。
  6. 右側ペインですべての選択を外します。
  7. 「追加」をクリックします。「ソース元の追加」ダイアログが表示されます。
  8. 「参照」をクリックします。「ディレクトリの選択」ダイアログが表示されます。
  9. mywork/MySQL Connector/Connector/ディレクトリに移動します。Javadocディレクトリを選択します。
  10. 「OK」をクリックします。
  11. 「OK」をクリックします。

アプリケーション・ナビゲータで、このデプロイメント・プロファイルを確認する必要があります。次に実際のデプロイメントを実行します。

デプロイメント・ログには、JARファイルが作成された場所が表示されます。mywork/MySQL Connector/Connector/deploy/mysql-connector-java--javadoc.jarなどです。このファイルには、所有するすべてのMySQL Connector/Jライブラリ用Javadocが含まれます。ファイルをjdev/lib またはmywork/libなどへコピーします。これで、JDBCドライバ用Javadocを使用できます。

ソースに対して同じことを実行するのは非常に容易です。Javadoc用と同様にデプロイメント・プロファイルを作成します。「ソース元」ペインで、「プロジェクト・ソースパス」を選択し、JARファイルとしてそれをデプロイします。必要に応じてJDBCドライバでデバッグできます。