Oracle ADF Business Componentsは、Oracleデータベースのみではなく、SQL ServerおよびDB2に対しても稼働できます。アプリケーションのニーズに応じて、次のような開発シナリオがあります。
すべての開発シナリオには、JDBC接続、SQL言語、型マップ、ドメインという4つの要素があり、相互に関連しています。JDeveloperは、デフォルトではOracleデータベースとともに稼働するように構成されています。他のデータベースとともに稼働するには、適切な値を使用するように構成する必要があります。詳細は、「接続、SQL言語、型マップおよびドメインの理解」を参照してください。
Oracle ADF Business Componentsをデータベースに接続するには、次のような様々な構成があります。
次のセクションで、これらのシナリオについて詳しく説明します。
このシナリオは、Oracleデータベースを使用する場合のデフォルトの構成です。これは、Oracleの有効なJDBCデータ型を利用することにより、Oracle SQL構文およびJBOドメインの利点を最大限に活用するために最適な構成です。
この構成を選択した場合は、次の必須ライブラリが追加されます。
BC4J Oracle Domains
このシナリオでは、SQL ServerおよびDB2データベースを稼働できるようにします。この構成を使用してOracleデータベースを稼働させることも可能ですが、次に記載されている切替え可能シナリオの方が適切です。SQL92のシナリオでは、ドメイン・オブジェクトは使用できません(Java型のマップを使用します)。このためパフォーマンスが低下します。
外部データソースへの接続手順の詳細は、「SQL Serverデータベース用Oracle ADF Business Componentsの開発」を参照してください。
OLiteのシナリオは、Oracle9i Liteデータベースを稼働する場合のみ使用されます。この構成は、SQL92構成とよく似ており、適用される一部の制限が同じです。
Oracle、Oracle Lite、SQL92ベースのデータベースを稼働している場合で、設計時と実行時にターゲット・データベースを切り替える際にこの構成は有効です。この構成を使用すると、Java型のマップよりも高速で効率がよいというドメイン型の利点を活用できますが、SQL92言語の制限を受けることになります。
注意: このシナリオでは、適切なドメイン・ライブラリを使用しているかどうかを手動で確認する必要があります。後述の表では、OracleおよびGenericの2つのドメイン型があることに注意してください。Oracleを稼働させている場合は、必ずBC4J Oracle Domainsを使用します。その他のデータベース(Oracle Liteなど)を稼働させている場合は、ドメイン型をBC4J Generic Domainsに切り替える必要があります。データソースの切替えの詳細は、「切替え可能なデータソース用のOracle ADF Business Componentsの開発」を参照してください。
SQL92標準で宣言されたデータ型ではなく、拡張データ型を使用しているデータベースの場合は、データベース型をJava型へマップするカスタム型のマップを設計する必要があります。SQL92のシナリオと同様に、ドメイン型は使用できません。このシナリオでは、SQLに関する制限事項は多くはありませんが、これらの制限に注意する必要があります。
すべての開発シナリオには、JDBC接続、SQL言語、型マップ、ドメインという4つの要素があり、相互に関連しています。JDeveloperは、デフォルトではOracleデータベースとともに稼働するように構成されています。Oracle以外のデータベースとともに稼働するには、適切な値を使用するように構成する必要があります。Oracle以外のアプリケーション・サーバーにデプロイする場合、ビジネス・コンポーネント・プロジェクトを開始する際にはこれらと同じ値を選択する必要があります。
比較用に、これらの値を次の表に記載します。
シナリオ | 接続URL | SQL言語 | 型マップ | ドメイン |
---|---|---|---|---|
Oracle9i |
jdbc:oracle:thin |
Oracle |
Oracle |
BC4J Oracle Domains |
SQL92 |
jdbc:db_type:db_name:port |
SQL92 |
Java |
|
OLite |
jdbc:polite:POLite |
OLite |
Java |
|
切替え可能 |
jdbc:oracle:thin |
SQL92 |
Oracle |
BC4J Oracle Domains |
カスタム |
jdbc:odbc:db_name |
SQL92 |
カスタム |
|
外部アプリケーション・サーバー | n/a | SQL92 | Java | JBO Generic Domains |
プロジェクトを開始する前に、接続タイプを選択します。このとき、ビジネス・コンポーネント・フレームワークは、SQL言語および型マップのデフォルト値を選択します。これらの値は、ビジネス・コンポーネント・プロジェクト・ウィザードのドロップダウン・ボックスに表示されます。
外部データソースの接続URLは、jdbc:db_type:db_name:portです。各部分は次のとおりです。
sqlserver
またはdb2
など該当するドライバ名になります。
一般的な接続URLは次のようになります。
jdbc:db2:ORDENT
jdbc:microsoft:sqlserver://<db-host>:1433;SelectMethod=cursor;DatabaseName=[db-name]
Oracle ADF Business Componentsエンティティ・オブジェクトは、リレーショナル表のデータ内容を管理します。Oracleデータベースに接続することがわかっている場合は、Oracle ADF Business Componentsで最適化を行うことができます。ただし、アプリケーションを任意のSQLデータソースで実行する必要がある場合は、これらの最適化は使用できません。一般に、アプリケーション用に生成されるSQLのスタイルをSQL言語(SQL dialect)と呼びます。
Oracle ADF Business Componentsには、次の4つのSQL言語があります。
Oracle: デフォルトのOracle9iシナリオでのみ使用します。
接続タイプを選択した場合、フレームワークでは、デフォルトでどのSQL言語を使用するかが認識されます。作成したすべてのビジネス・コンポーネントには、適切なSQLスタイルが反映されます。たとえば、SQL92言語を選択した場合は、バインディングは「:1」ではなく「?」の形式になります。
注意: ビジネス・コンポーネント・アプリケーションの設計者が、カスタム設計のビュー・オブジェクトで使用するSQL言語は、生成されるSQLの言語とも一致する必要があります。
OLiteシナリオおよびSQL92シナリオでは、ドメインは使用できません(例外としてDateとNumberは使用できます)。ドメインが使用できない場合は、Java型で、データベース情報をJavaの表現に変換し、もう一度元に戻す必要があります。この処理は、型マップを使用して行います。
Oracle ADF Business Componentsには次の2つの型マップがあります。
Oracle: データベース列はoracle.jbo.domain型にマップされます。
SQL92標準で宣言されたデータ型ではなく、拡張データ型を使用しているデータベースの場合は、データベース型をJava型へマップするカスタム型のマップを設計する必要があります。
ドメイン型は、データベース型へ直接マップするため、Java型のマップに比べて高速かつ効率的です。ビジネス・コンポーネント・フレームワークには、oracle.jbo.domainの2種類の実装が用意されています。
BC4J Oracle Domains: OracleのJDBCドライバを使用して効率よくマップします。
関連項目
Oracle9i LiteおよびOracle以外のデータソース用にOracle ADF Business Componentsを開発する場合の制限事項
SQL Serverデータベース用Oracle ADF Business Componentsの開発
DB2データベース用Oracle ADF Business Componentsの開発
Oracle9i Liteデータベース用Oracle ADF Business Componentsの開発
カスタム・データベース用Oracle ADF Business Componentsの開発
切替え可能なデータソース用のOracle ADF Business Componentsの開発
JDBC型マップの選択
JDBC型マップについて
カスタム型マップの作成
汎用JDBCに対するカスタム型マップの指定
Oracle ADF Business Componentsデータ型
Java型マップ
型マップ・クラスのサンプル
Copyright © 1997, 2004, Oracle. All rights reserved.