ヘッダーをスキップ
Oracle Database 2日でJava開発者ガイド
11g リリース2(11.2)
B56268-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

1 Oracle DatabaseでのJavaの使用

Oracle Databaseは、データの格納、使用および変更に使用できるリレーショナル・データベースです。Javaアプリケーションでは、リレーショナル・データベースのデータのアクセスおよび操作に、Java Database Connectivity(JDBC)標準が使用されます。

JDBCは、Sunが開発した業界標準のアプリケーション・プログラミング・インタフェース(API)で、これを使用すると、JavaコードにSQL文を埋め込むことができます。JDBCはX/OpenのSQL Call Level Interface(CLI)に基づき、SQL92標準のエントリ・レベルに準拠しています。オラクル社などの各ベンダーは、標準のjava.sqlパッケージのインタフェースを実装することによって、独自のJDBC実装を作成しています。

このマニュアルでは、簡単なJavaアプリケーションを使用し、Oracle Databaseに接続してデータベースのデータにアクセスおよび変更する方法について説明します。また、従業員データを表示するためのマスター・ディテール・アプリケーションの開発には、Oracle Application Development Framework(ADF)が使用されます。

この章では、このマニュアルで作成されるJavaアプリケーションの概要、およびJavaアプリケーションの開発に使用できるツールについて説明します。この章の内容は、次のとおりです。

1.1 Javaを使用したOracle Databaseへの接続

JDBCは、ユーザーがデータベースに接続してSQL文を実行し、データベースに問合せできるようにするデータベース・アクセス・プロトコルです。コアJavaクラス・ライブラリには、JDBC APIのjava.sqljavax.sqlが用意されています。ただし、JDBCは、ベンダーが特定のデータベースを必要に応じて特化するためのドライバを提供できるように設計されています。


注意:

Oracle Database 11gリリース2では、JDK 5以上がサポートされています。今回のリリースのJDBCサポートには、ojdbc5.jarファイルおよびojdbc6.jarファイルが含まれています。ojdbc6.jarファイルによって、JDBC 4.0との整合性が提供されます。このファイルを使用するには、JDK 6が必要です。

Oracle Databaseでは、JDBC Thinドライバ、Oracle Call Interface(OCI)ドライバおよびoracle.sqloracle.jdbcパッケージを使用したクライアント側アプリケーションの開発がサポートされています。 これらのパッケージのクラスおよびインタフェースによって、JDBC標準を拡張します。これにより、Oracleのデータ型にアクセスして変更したり、JDBC用のOracleパフォーマンス拡張をJavaアプリケーションで非常に柔軟に使用できるようになります。

次の項では、JDBC標準に対するOracleサポートについて説明します。


関連項目:

  • 『Oracle Database JDBC開発者ガイドおよびリファレンス』

  • 『Oracle Database Java開発者ガイド』


1.1.1 Oracle JDBC Thinドライバ

ほとんどの場合、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パッケージを使用します。

1.1.2 Oracle JDBC OCIドライバ

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を使用してデータベースとの通信を行います。

1.1.3 Oracle JDBCパッケージ

JDBC APIに対するOracleサポートは、oracle.jdbcパッケージおよびoracle.sqlパッケージによって提供されています。これらのパッケージでは、Java Development Kit(JDK)リリース1.5から1.6がすべてサポートされています。

oracle.sql

oracle.sqlパッケージは、SQL形式でデータへの直接アクセスをサポートしています。このパッケージは、主に、SQLデータへのJavaマッピングを提供するクラスとそれらのサポート・クラスによって構成されます。実質的に、このクラスはSQLデータのJavaラッパーとして機能します。文字はJava charsに変換され、さらにUCS-2キャラクタ・セット内のバイトに変換されます。oracle.sql.*データ型の各クラスは、全データ型共通のファンクションおよび機能が含まれているスーパークラスoracle.sql.Datumを拡張します。その中には、JDBC 2.0準拠のデータ型に対応したクラスもあります。データ型クラスだけでなく、oracle.sqlパッケージは、オブジェクトやコレクションで使用するクラスやインタフェースもサポートしています。

oracle.jdbc

oracle.jdbcパッケージのインタフェースでは、java.sqlパッケージのインタフェースに対するOracleの拡張機能が定義されます。これらの拡張機能によって、Oracle SQL形式のデータにアクセスできるようになります。また、その他のOracle固有の機能(Oracleのパフォーマンス拡張など)にアクセスできるようにもなります。

このパッケージの主要なクラスとインタフェースでは、標準のJDBC機能をサポートし、次のような処理を実行するメソッドがあります。

  • OracleのStatementオブジェクトを返します。

  • すべての文のOracleパフォーマンス拡張を設定します。

  • oracle.sql.*型を準備済のコール可能文にバインドします。

  • oracle.sql形式でデータを取得します。

  • データベースおよび結果セットに関するメタ情報を取得します。

  • SQLの型の識別に使用される整定数を定義します。


関連項目:

  • 『Oracle Database JDBC開発者ガイドおよびリファレンス』

1.2 JDeveloperを使用したJDBCアプリケーションの作成

このマニュアルのJavaアプリケーション・チュートリアルでは、Oracle JDeveloper 10gリリース10.1.3を統合開発環境(IDE)として使用し、Javaアプリケーションの開発、およびユーザーがデータを表示して変更するためのWebページの作成を行います。

Oracle JDeveloperは、JavaアプリケーションおよびWebサービスのモデリング、開発、デバッグ、最適化およびデプロイをサポートするIDEです。

JDeveloperには、Javaプログラムに埋め込まれたSQL文を使用してデータベースにアクセスするJavaプログラムを作成し、テストするための機能が備えられています。JDeveloperには、データベースに関して次の処理を行うファンクションおよび機能が備えられています。

1.2.1 JDeveloperユーザー・インタフェース

Oracle JDeveloperは、様々なアプリケーション開発ツール用のウィンドウを使用するIDEです。ウィンドウの表示/非表示を切り替えたり、ウィンドウをドッキング/ドッキング解除して、作業方法に合ったデスクトップを作成できます。

これらのツール以外に、JDeveloperには、プロジェクトの内容を分類し表示できる多くのナビゲータが備えられています。アプリケーション・ナビゲータおよびシステム・ナビゲータには、プロジェクトのファイルが表示され、構造ウィンドウには、個別の項目の構造が表示されます。

必要に応じてウィンドウの位置を変更し、「表示」メニューから閉じたり開いたりすることができます。図1-1に、JDeveloperユーザー・インタフェース(GUI)で使用可能ないくつかのナビゲータ、パレット、作業領域のデフォルトのレイアウトを示します。

図1-1 JDeveloperユーザー・インタフェース

JDeveloperユーザー・インタフェース
「図1-1 JDeveloperユーザー・インタフェース」の説明


関連項目:

JDeveloperオンライン・ヘルプのIDEでのウィンドウの処理に関する項を参照してください。

1.2.2 JDeveloperツール

JDeveloperでは、次のツールを使用してJavaアプリケーションを簡単に作成できます。

  • 構造ウィンドウ: ツリー・ビューに、現在編集中(Java、XMLまたはJSP/HTML)のアプリケーションのすべての要素が表示されます。

  • Javaビジュアル・エディタ: ユーザー・インタフェースの要素を迅速かつ簡単に組み合せて配置できます。

  • JSP/HTMLビジュアル・エディタ: HTMLおよびJSPページを視覚的に編集する場合に使用できます。

  • Javaソース・エディタ: Javaコードを作成する場合に役立つ豊富な機能があります。このような機能には、構文およびセマンティック・エラーをわかりやすくするハイライト、インポート文を追加およびソートする場合の支援、Javaコード・インサイト機能、コード・テンプレートがあります。


    注意:

    Javaコード・インサイト機能は、Javaソース・エディタでコードを作成する場合にコンテキスト固有のインテリジェント入力を提供する機能です。このマニュアルでは、Javaコード・インサイトを使用したコードの挿入方法が数多く記載されています。

  • コンポーネント・パレット: ページ上に表示するボタンやテキスト領域など、ユーザー・インタフェース・コンポーネントを選択します。

  • プロパティ・インスペクタ: ユーザー・インタフェース・コンポーネントなどの項目のプロパティを簡単に設定できます。

JDeveloper UI内でのこれらのツールへのアクセス方法についてより理解するには、図1-1を参照してください。

1.3 サンプルJavaアプリケーションの概要

このマニュアルでは、Java、JDBCおよびOracle ADFを使用してアプリケーションを作成する方法について説明します。このアプリケーションには、次のファンクションおよび機能を組み込みます。

  1. ユーザーがログインしたり、ユーザー名およびパスワードを検証できるようにします。

  2. データベース接続を確立します。

  3. データベースでデータを問い合せ、JavaBeanを使用してデータを取得します。

  4. JavaServer Pages(JSP)テクノロジを使用して、データを表示します。

  5. ユーザーがレコードを挿入、更新または削除できるようにします。

  6. マスター・ディテール・アプリケーションの情報にアクセスし、変更します。

  7. 例外を処理します。


注意:

アプリケーションは、Oracle Databaseに付属のHRスキーマに接続します。Oracle Databaseのクライアント・インストールにはThinドライバとOCIドライバの両方が付属していますが、サンプル・アプリケーションでは、JDBC Thinドライバのみが使用されます。

アプリケーションWebページ(JSPページ)の概要

図1-2に、このアプリケーションに対して開発されるページ間の関係を示します。

図1-2 サンプル・アプリケーションのWebページ

図1-2の説明が続きます。
「図1-2 サンプル・アプリケーションのWebページ」の説明

サンプル・アプリケーションのWebページの概要は、次のとおりです。

クラス

サンプル・アプリケーションには、次のクラスが含まれています。


注意:

このアプリケーションは、このマニュアル全体をとおしてチュートリアルの形式で開発していきます。そのため、このマニュアルは、章の順番に読むことをお薦めします。

1.4 開発者フレームワークを使用した高度なアプリケーション開発

Web、ワイヤレス、デスクトップまたはWebサービス・インタフェースを使用してデータを検索、表示、作成、変更および検証するエンタープライズ・ソリューションを開発する場合、作業を簡素化するには開発者フレームワークを使用する必要があります。

フレームワークを使用すると、開発者は、明確に定義されたインタフェースに基づいてコードを作成できます。これにより、大幅に時間を節約でき、また、Java EEフレームワークにはエンタープライズ・アプリケーションに必要なインフラストラクチャが備えられているため、Java EE環境という点においても有益です。つまり、Java EEフレームワークによってJava EEデザイン・パターンに表現される概念をより具体化します。

Oracle Application Development Framework(Oracle ADF)は、Java EE標準およびオープンソース・テクノロジに基づくエンドツーエンド・アプリケーション・フレームワークであり、サービス指向アプリケーションの実装を簡素化および促進します。

機能の豊富な環境を使用することにより、複雑なアプリケーションをどのように簡単に作成できるようになるかについては、第7章のマスター・ディテール・アプリケーションに関する項を参照してください。