Oracle Database 2日でJava開発者ガイド 11g リリース1(11.1) E05692-02 |
|
Oracle Databaseは、データの格納、使用および変更に使用できるリレーショナル・データベースです。Javaアプリケーションでは、リレーショナル・データベースのデータのアクセスおよび操作に、Java Database Connectivity(JDBC)標準が使用されます。
JDBCは、Sun社が開発した業界標準のApplication Program Interface(API)です。JDBCを使用すると、JavaコードにSQL文を埋め込むことができます。JDBCは、X/Open SQL Call Level Interface(CLI)に基づいており、SQL92 Entry Level規格に準拠しています。Oracleなどの各ベンダーは、標準java.sql
パッケージのインタフェースを実装することによって、JDBC実装を作成しています。
このマニュアルでは、簡単なJavaアプリケーションを使用し、Oracle Databaseに接続してデータベースのデータにアクセスおよび変更する方法について説明します。また、従業員データを表示するためのマスター・ディテール・アプリケーションの開発には、Oracle Application Development Framework(ADF)が使用されます。
この章では、このマニュアルで作成されるJavaアプリケーションの概要、およびJavaアプリケーションの開発に使用できるツールについて説明します。この章の内容は、次のとおりです。
JDBCはデータベース・アクセス・プロトコルです。JDBCを使用してデータベースに接続し、データベースに対してSQL文を実行して問合せを行うことができます。コアのJavaクラス・ライブラリには、JDBC API、java.sql
およびjavax.sql
が用意されています。ただし、JDBCは、ベンダーが特定のデータベースに対して必要な特別機能を持つドライバを提供できるように設計されています。
Oracle Databaseでは、JDBC Thinドライバ、Oracle Call Interface(OCI)ドライバおよびoracle.sql
パッケージとoracle.jdbc
パッケージを使用したクライアント側アプリケーションの開発がサポートされています。これらのパッケージのクラスおよびインタフェースによって、JDBC標準を拡張します。これにより、Oracleのデータ型にアクセスして変更したり、JDBC用のOracleパフォーマンス拡張をJavaアプリケーションで非常に柔軟に使用できるようになります。
次の項では、JDBC標準に対するOracleサポートについて説明します。
ほとんどの場合、JDBC Thinドライバを使用することをお薦めします。JDBC-OCIは、OCI固有の機能の場合にのみ必要となります。
JDBC Thinドライバは、Pure JavaのType IVドライバです。JDBC Thinドライバでは、JavaTM 2 Platform Standard Edition 5.0(Java Development Kit(JDK)5とも呼ばれる)がサポートされています。また、JDK 6に対するサポートも含まれています。JDBC Thinドライバはプラットフォームに依存していないため、クライアント側アプリケーションの開発にその他のOracleソフトウェアを必要としません。JDBC Thinドライバは、SQL*Netを使用してサーバーと通信を行い、Oracle Databaseにアクセスします。
JDBC Thinドライバを使用すると、Oracleネットワーク・プロトコルのPure Java実装(Two-Task Common(TTCプロトコル)およびSQL*Net)を提供することによって、データベースへの直接接続が可能になります。ドライバでは、TCP/IPプロトコルがサポートされており、データベース・サーバーのTCP/IPソケットにTransparent Network Substrate(TNS)リスナーが必要です。Thinドライバは、適切なJava仮想マシン(Java Virtual Machine: JVM)があるマシンであれば、どのマシン上でも機能します。
Oracle固有のJDBC機能および標準機能にアクセスするには、oracle.jdbc
パッケージを使用します。
JDBC OCIドライバは、Javaアプリケーションで使用されるType IIドライバです。JDBC OCIドライバを使用するには、Oracleクライアント・インストールが必要です。JDBC OCIドライバでは、プロセス間通信(IPC)、Named Pipes、TCP/IP、InternetworkPacket Exchange/Sequenced Packet Exchange(IPX/SPX)など、インストールされているすべてのOracle Netアダプタがサポートされています。
OCIはAPIの1つであり、OCIを使用すると、ネイティブ・プロシージャまたはファンクション・コールを使用するアプリケーションを作成できます。JDBC OCIドライバはJavaおよびCを組み合せて記述されており、JDBCコールをOCIへのコールに変換します。変換は、Cエントリ・ポイントをコールするネイティブ・メソッドを使用して行われます。これらのコールは、SQL*Netを使用してデータベースとの通信を行います。
JDBC APIに対するOracleサポートは、oracle.jdbc
パッケージおよびoracle.sql
パッケージによって提供されています。これらのパッケージでは、Java Development Kit(JDK)リリース1.5から1.6がすべてサポートされています。
oracle.sql
パッケージにより、SQL形式のデータへの直接アクセスがサポートされます。このパッケージは、主に、SQLデータへのJavaマッピングを提供するクラスとそれらのサポート・クラスによって構成されます。基本的に、クラスは、SQLデータのJavaラッパーとして機能します。キャラクタは、Java chars
に変換されてから、UCS-2キャラクタ・セットのバイトに変換されます。それぞれのoracle.sql.*
データ型クラスによって、oracle.sql.Datum
(すべてのデータ型に共通したファンクションと機能を含むスーパークラス)が拡張されます。一部のクラスは、JDBC 2.0準拠データ型用です。データ型クラス以外に、oracle.sql
パッケージでは、オブジェクトおよびコレクションで使用するクラスとインタフェースがサポートされています。
oracle.jdbc
パッケージのインタフェースでは、java.sql
パッケージのインタフェースに対するOracleの拡張機能が定義されます。これらの拡張機能によって、Oracle SQL形式のデータにアクセスできるようになります。また、その他のOracle固有の機能(Oracleのパフォーマンス拡張など)にアクセスできるようにもなります。
このパッケージの主要なクラスとインタフェースでは、標準のJDBC機能をサポートし、次のような処理を実行するメソッドがあります。
oracle.sql.*
型を準備済のコール可能文にバインドします。
oracle.sql
形式でデータを取得します。
このマニュアルのJavaアプリケーション・チュートリアルでは、Oracle JDeveloper 10g リリース10.1.3を統合開発環境(IDE)として使用し、Javaアプリケーションの開発、およびユーザーがデータを表示して変更するためのWebページの作成を行います。
Oracle JDeveloperは、JavaアプリケーションおよびWebサービスのモデリング、開発、デバッグ、最適化およびデプロイをサポートするIDEです。
JDeveloperには、Javaプログラムに埋め込まれたSQL文を使用してデータベースにアクセスするJavaプログラムを作成し、テストするための機能が備えられています。JDeveloperには、データベースに関して次の処理を行うファンクションおよび機能が備えられています。
Oracle JDeveloperは、様々なアプリケーション開発ツール用のウィンドウを使用するIDEです。ウィンドウの表示/非表示を切り替えたり、ウィンドウをドッキング/ドッキング解除して、作業方法に合ったデスクトップを作成できます。
これらのツール以外に、JDeveloperには、プロジェクトの内容を分類し表示できる多くのナビゲータが備えられています。アプリケーション・ナビゲータおよびシステム・ナビゲータには、プロジェクトのファイルが表示され、構造ウィンドウには、個別の項目の構造が表示されます。
ウィンドウは、任意に配置し、「表示」メニューから開いたり終了することができます。図1-1に、JDeveloperユーザー・インタフェース(GUI)で使用可能なナビゲータ、パレットおよび作業領域のデフォルトのレイアウトを示します。
JDeveloperでは、次のツールを使用してJavaアプリケーションを簡単に作成できます。
JDeveloper UI内でのこれらのツールへのアクセス方法についてより理解するには、図1-1を参照してください。
このマニュアルでは、Java、JDBCおよびOracle ADFを使用してアプリケーションを作成する方法について説明します。このアプリケーションには、次のファンクションおよび機能を組み込みます。
図1-2に、このアプリケーションに対して開発されるページ間の関係を示します。
サンプル・アプリケーションのWebページの概要は、次のとおりです。
index.jsp
アプリケーションの開始ページです。アプリケーションのログイン・ページlogin.jsp
が自動的に表示されます。
login.jsp
このページで、ユーザーはアプリケーションにログインできます。ユーザー名、パスワードおよびホスト情報は、検証され、データベースにログインするための接続記述子の作成に使用されます。
login_action.jsp
login.jsp
でユーザーが入力したログイン情報の認証を処理する非表示のページです。認証が成功すると、ユーザーにemployees.jsp
が表示されます。それ以外の場合は、メッセージが含まれるlogin.jsp
ページが表示されます。
employees.jsp
アプリケーションのメイン・ページです。AnyCo CorporationのHR
スキーマのすべての従業員のリストが表示されます。ユーザーは、任意の文字列を使用して、従業員リストをフィルタできます。また、このページには、ユーザー・データを追加、編集および削除するリンクが含まれています。ただし、これらのアクションは、それぞれのアクション専用に作成されたその他のJSPページで処理されます。
insert.jsp
employees.jsp
ページ上にある従業員データを挿入するリンクを選択すると、このページが表示されます。このページには、新しい従業員レコードのすべての詳細が入力されるフォームが含まれています。このフォームで入力された詳細は、insert_action.jsp
ページによって処理されます。
insert_action.jsp
insert.jsp
ページで入力された新しい従業員のデータの挿入を処理する非表示のページです。
edit.jsp
employees.jsp
ページ上にある従業員データを編集するリンクを選択すると、このページが表示されます。このフォームのテキスト・フィールドには、1人の従業員の現在のデータが表示され、ユーザーはこの情報を編集することができます。
update_action.jsp
edit.jsp
ページでの送信アクションによって、データがこの非表示のページに送信されます。このページによって、編集済データがデータベースに挿入されます。
delete_action.jsp
employees.jsp
ページ上にある従業員レコードを削除するリンクは、この非表示のページによって処理されます。このページでは、従業員データが削除され、再度employees.jsp
ページが表示されます。
サンプル・アプリケーションには、次のクラスが含まれています。
DataHandler.java
このクラスには、サンプル・アプリケーションの重要なファンクションの実装に使用されるメソッドがすべて含まれています。このクラスには、ユーザー資格証明の検証、データベースへの接続、従業員データの取得(フィルタあり/なし)、データの挿入、データの更新、例外の処理などを行うメソッドが含まれています。
Employees.java
このクラスは、単一の従業員レコードを保持するJavaBeanです。このクラスには、各レコード・フィールドの値を取得して設定するアクセッサ・メソッドが含まれています。また、従業員レコードを取得して変更するアクセッサ・メソッドも含まれています。
JavaClient.java
このクラスは、DataHandler
クラスをテストする場合にのみ使用されます。
Web、ワイヤレス、デスクトップまたはWebサービス・インタフェースを使用してデータを検索、表示、作成、変更および検証するエンタープライズ・ソリューションを開発する場合、作業を簡素化するには開発者フレームワークを使用する必要があります。
フレームワークを使用すると、開発者は、明確に定義されたインタフェースに基づいてコードを作成できます。これにより、大幅に時間を節約できます。また、Java EEフレームワークにはエンタープライズ・アプリケーションに必要なインフラストラクチャが備えられているため、Java EE環境という点においても有益です。つまり、Java EEフレームワークによって、Java EEデザイン・パターンに表現される概念をより具体化します。
Oracle Application Development Framework(Oracle ADF)は、Java EE標準およびオープンソース・テクノロジに基づくエンドツーエンド・アプリケーション・フレームワークであり、サービス指向アプリケーションの実装を簡素化および促進します。
機能の豊富な環境を使用することにより、複雑なアプリケーションをどのように簡単に作成できるようになるかについては、第7章のマスター・ディテール・アプリケーションを参照してください。
|
![]() Copyright © 2007 Oracle Corporation. All Rights Reserved. |
|