接続、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
jdbc:db_type:db_name:port

SQL92

Oracle

BC4J Oracle Domains
BC4J Generic Domains

カスタム

jdbc:odbc:db_name

SQL92

カスタム

なし*

外部アプリケーション・サーバー n/a SQL92 Java JBO Generic Domains

接続URL

プロジェクトを開始する前に、接続タイプを選択します。このとき、ビジネス・コンポーネント・フレームワークは、SQL言語および型マップのデフォルト値を選択します。これらの値は、ビジネス・コンポーネント・プロジェクト・ウィザードのドロップダウン・ボックスに表示されます。

外部データソースの接続URLは、jdbc:db_type:db_name:port です。各部分は次のとおりです。

一般的な接続URLは次のようになります。

SQL言語

Business Components for Javaエンティティ・オブジェクトは、リレーショナル表のデータ内容を管理します。Oracleデータベースに接続することがわかっている場合は、Business Components for Javaで最適化を行うことができます。ただし、アプリケーションを任意のSQLデータソースで実行する必要がある場合は、これらの最適化は使用できません。一般に、アプリケーション用に生成されるSQLのスタイルをSQL言語(SQL dialect)と呼びます。

Business Components for Javaには、次の4つのSQL言語があります。

接続タイプを選択した場合、フレームワークでは、デフォルトでどのSQL言語を使用するかが認識されます。作成したすべてのビジネス・コンポーネントには、適切なSQLスタイルが反映されます。たとえば、SQL92言語を選択した場合は、バインドは「:1」ではなく「?」の形式になります。

注意: ビジネス・コンポーネント・アプリケーションの設計者が、カスタム設計のビュー・オブジェクトで使用するSQL言語は、生成されるSQLの言語とも一致する必要があります。

型マップ

OLiteシナリオおよびSQL92シナリオでは、ドメインは使用できません(例外としてDateとNumberは使用できます)。ドメインが使用できない場合は、Java型で、データベース情報をJavaの表現に変換し、もう一度元に戻す必要があります。この処理は、型マップを使用して行います。

Business Components for Javaには2種類のマップが用意されています。

SQL92標準で宣言されたデータ型ではなく、拡張データ型を使用しているデータベースの場合は、データベース型をJava型へマップするカスタム型のマップを設計する必要があります。

ドメイン

ドメイン型は、データベース型へ直接マップするため、Java型のマップに比べて高速かつ効率的です。ビジネス・コンポーネント・フレームワークには、oracle.jbo.domainの2種類の実装が用意されています。