すべての開発シナリオには、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]
Business Components for Javaエンティティ・オブジェクトは、リレーショナル表のデータ内容を管理します。Oracleデータベースに接続することがわかっている場合は、Business Components for Javaで最適化を行うことができます。ただし、アプリケーションを任意のSQLデータソースで実行する必要がある場合は、これらの最適化は使用できません。一般に、アプリケーション用に生成されるSQLのスタイルをSQL言語(SQL dialect)と呼びます。
Business Components for Javaには、次の4つのSQL言語があります。
Oracle: デフォルトのOracle9iシナリオでのみ使用します。
接続タイプを選択した場合、フレームワークでは、デフォルトでどのSQL言語を使用するかが認識されます。作成したすべてのビジネス・コンポーネントには、適切なSQLスタイルが反映されます。たとえば、SQL92言語を選択した場合は、バインドは「:1」ではなく「?」の形式になります。
注意: ビジネス・コンポーネント・アプリケーションの設計者が、カスタム設計のビュー・オブジェクトで使用するSQL言語は、生成されるSQLの言語とも一致する必要があります。
OLiteシナリオおよびSQL92シナリオでは、ドメインは使用できません(例外としてDateとNumberは使用できます)。ドメインが使用できない場合は、Java型で、データベース情報をJavaの表現に変換し、もう一度元に戻す必要があります。この処理は、型マップを使用して行います。
Business Components for Javaには2種類のマップが用意されています。
Oracle: データベース列はoracle.jbo.domain型にマップされます。
SQL92標準で宣言されたデータ型ではなく、拡張データ型を使用しているデータベースの場合は、データベース型をJava型へマップするカスタム型のマップを設計する必要があります。
ドメイン型は、データベース型へ直接マップするため、Java型のマップに比べて高速かつ効率的です。ビジネス・コンポーネント・フレームワークには、oracle.jbo.domainの2種類の実装が用意されています。
BC4J Oracle Domains: OracleのJDBCドライバを使用して効率よくマップします。