Oracle Databaseは、データの格納、使用および変更に使用できるリレーショナル・データベースです。Javaアプリケーションでは、リレーショナル・データベースのデータのアクセスおよび操作に、Java Database Connectivity(JDBC)標準が使用されます。
業界標準のアプリケーション・プログラミング・インタフェース(API)であるJDBCを使用すると、JavaからSQLを使用してRDBMSにアクセスできます。JDBCはX/Open SQL Call Level Interface (CLI)に基づき、JDBCエスケープ標準のエントリ・レベルに準拠しています。ベンダー各社はそれぞれ独自の拡張を含めたJDBC仕様を実装しています。
このマニュアルでは、簡単なJavaアプリケーションを使用し、Oracle Database 12c リリース1 (12.1)に接続してデータベースのデータにアクセスおよび変更する方法について説明します。
この章では、このマニュアルで作成されるJavaアプリケーションの概要、およびJavaアプリケーションの開発に使用できるツールについて説明します。この章の内容は、次のとおりです。
JDBCは、ユーザーがデータベースに接続してSQL文を実行し、データベースに問合せできるようにするデータベース・アクセス・プロトコルです。コアJavaクラス・ライブラリには、JDBC APIのjava.sql
とjavax.sql
が用意されています。ただし、JDBCは、ベンダーが特定のデータベースを必要に応じて特化するためのドライバを提供できるように設計されています。
注意: Oracle Database 12c リリース1 (12.1)ではJDK 6およびJDK 7をサポートしています。 |
次の項では、JDBC標準に対するOracleサポートについて説明します。
ほとんどの場合、JDBC Thinドライバを使用することをお薦めします。JDBC-OCIは、OCI固有の機能の場合にのみ必要となります。Thinドライバは、適切なJava仮想マシン(Java Virtual Machine: JVM)があるシステムであれば、どのシステム上でも機能します。
JDBC Thinドライバは、Pure JavaのType IVドライバです。これは、JavaTM 2 Platform Standard Edition 5.0(Java Development Kit(JDK)5とも呼ばれる)をサポートしています。また、JDK 6もサポートしています。このドライバはプラットフォームに依存していないため、クライアント側アプリケーションの開発にその他のOracleソフトウェアを必要としません。JDBC Thinドライバは、SQL*Netを使用してサーバーと通信し、Oracle Database 12c リリース1 (12.1)にアクセスします。
Oracle固有のJDBC機能および標準機能にアクセスするには、oracle.jdbc
パッケージを使用します。
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のStatementオブジェクトを返します。
すべての文のOracleパフォーマンス拡張を設定します。
oracle.sql.*
型を準備済のコール可能文にバインドします。
oracle.sql
形式でデータを取得します。
データベースおよび結果セットに関するメタ情報を取得します。
SQLの型の識別に使用される整定数を定義します。
このマニュアルのJavaアプリケーション・チュートリアルでは、Oracle JDeveloper 11.1.1を統合開発環境(IDE)として使用し、Javaアプリケーションの開発、およびユーザーがデータを表示して変更するためのWebページの作成を行います。
Oracle JDeveloperは、JavaアプリケーションおよびWebサービスのモデリング、開発、デバッグ、最適化およびデプロイをサポートするIDEです。
JDeveloperには、Javaプログラムに埋め込まれたSQL文を使用してデータベースにアクセスするJavaプログラムを作成し、テストするための機能が備えられています。JDeveloperには、データベースに関して次の処理を行うファンクションおよび機能が備えられています。
データベース接続の作成
データベース・オブジェクトの表示
データベース・オブジェクトの作成、編集または削除
PL/SQLファンクション、プロシージャおよびパッケージの作成および編集
Oracle JDeveloperは、様々なアプリケーション開発ツール用のウィンドウを使用するIDEです。ウィンドウの表示/非表示を切り替えたり、ウィンドウをドッキング/ドッキング解除して、作業方法に合ったデスクトップを作成できます。
これらのツール以外に、JDeveloperには、プロジェクトの内容を分類し表示できる多くのナビゲータが備えられています。アプリケーション・ナビゲータおよびシステム・ナビゲータには、プロジェクトのファイルが表示され、構造ウィンドウには、個別の項目の構造が表示されます。
必要に応じてウィンドウの位置を変更し、「表示」メニューから閉じたり開いたりすることができます。図1-1に、JDeveloperユーザー・インタフェース(GUI)で使用可能ないくつかのナビゲータ、パレット、作業領域のデフォルトのレイアウトを示します。
関連項目: JDeveloperオンライン・ヘルプのIDEでのウィンドウの処理に関する項を参照してください。 |
JDeveloperでは、次のツールを使用してJavaアプリケーションを簡単に作成できます。
構造ウィンドウ: ツリー・ビューに、現在編集中(Java、XMLまたはJSP/HTML)のアプリケーションのすべての要素が表示されます。
JSP/HTMLビジュアル・エディタ: HTMLおよびJSPページを視覚的に編集する場合に使用できます。
Javaソース・エディタ: Javaコードを作成する場合に役立つ豊富な機能があります。このような機能には、構文およびセマンティック・エラーをわかりやすくするハイライト、インポート文を追加およびソートする場合の支援、Javaコード・インサイト機能、コード・テンプレートがあります。
注意: Javaコード・インサイト機能は、Javaソース・エディタでコードを作成する場合にコンテキスト固有のインテリジェント入力を提供する機能です。このマニュアルでは、Javaコード・インサイトを使用したコードの挿入方法が数多く記載されています。 |
コンポーネント・パレット: ページ上に表示するボタンやテキスト領域など、ユーザー・インタフェース・コンポーネントを選択します。
これらのツールについて理解するには、図1-1を参照してください。
このマニュアルでは、Java、JDBCおよびOracle ADFを使用してアプリケーションを作成する方法について説明します。このアプリケーションには、次のファンクションおよび機能を組み込みます。
ユーザーがログインしたり、ユーザー名およびパスワードを検証できるようにします。
データベース接続を確立します。
データベースでデータを問い合せ、JavaBeanを使用してデータを取得します。
JavaServer Pages (JSP)テクノロジを使用して、データを表示します。
ユーザーがレコードを挿入、更新または削除できるようにします。
マスター・ディテール・アプリケーションの情報にアクセスし、変更します。
例外を処理します。
注意: アプリケーションは、Oracle Database 12c リリース1 (12.1)に付属のHR スキーマに接続します。 |
図1-2に、このアプリケーションに対して開発されるページ間の関係を示します。
サンプル・アプリケーションのWebページの概要は、次のとおりです。
アプリケーションの開始ページです。アプリケーションのログイン・ページlogin.jsp
が自動的に表示されます。
このページで、ユーザーはアプリケーションにログインできます。ユーザー名、パスワードおよびホスト情報は、検証され、データベースにログインするための接続記述子の作成に使用されます。
login.jsp
でユーザーが入力したログイン情報の認証を処理する非表示のページです。認証が成功すると、ユーザーにemployees.jsp
が表示されます。それ以外の場合は、メッセージが含まれるlogin.jsp
ページが表示されます。
これはアプリケーションのメイン・ページです。AnyCo CorporationのHR
スキーマ内の全従業員リストが表示され、ユーザーは任意の文字列で従業員リストをフィルタできます。ユーザー・データの追加、編集および削除用の各リンクも含まれています。しかし、これらのアクションは、これらの個々のタスク専用に作成された別のJSPページで処理されます。
employees.jsp
ページ上にある従業員データを挿入するリンクを選択すると、このページが表示されます。このページには、新しい従業員レコードのすべての詳細が入力されるフォームが含まれています。このフォームで入力された詳細は、insert_action.jsp
ページによって処理されます。
insert.jsp
ページで入力された新しい従業員のデータの挿入を処理する非表示のページです。
employees.jsp
ページ上にある従業員データを編集するリンクを選択すると、このページが表示されます。このフォームのテキスト・フィールドには、1人の従業員の現在のデータが表示され、ユーザーはこの情報を編集することができます。
edit.jsp
ページでの送信アクションによって、データがこの非表示のページに送信されます。このページによって、編集済データがデータベースに挿入されます。
employees.jsp
ページ上にある従業員レコードを削除するリンクは、この非表示のページによって処理されます。このページでは、従業員データが削除され、再度employees.jsp
ページが表示されます。
サンプル・アプリケーションには、次のクラスが含まれています。
このクラスには、サンプル・アプリケーションの重要なファンクションの実装に使用されるメソッドがすべて含まれています。このクラスには、ユーザー資格証明の検証、データベースへの接続、従業員データの取得(フィルタあり/なし)、データの挿入、データの更新、例外の処理などを行うメソッドが含まれています。
このクラスは、単一の従業員レコードを保持するJavaBeanです。このクラスには、各レコード・フィールドの値を取得して設定するアクセッサ・メソッドが含まれています。また、従業員レコードを取得して変更するアクセッサ・メソッドも含まれています。
注意: このアプリケーションは、このマニュアル全体をとおしてチュートリアルの形式で開発していきます。そのため、このマニュアルは、章の順番に読むことをお薦めします。 |
Oracle Database 12c リリース1の詳細は、次のものを参照してください。
Oracle Technology Networkページを参照します。
次の手順を実行して、Oracle Database 12c リリース1オンライン・ドキュメント・ライブラリにアクセスします。
「スタート」をクリックした後、「プログラム」をクリックします。
「Oracle Database 12c Release 1」、「ヘルプを表示」、「ドキュメントを参照」の順に選択します。
次の手順を実行して、Oracle Database 12c リリース1オンライン・ディスカッション・フォーラムにアクセスします。
「スタート」をクリックした後、「プログラム」をクリックします。
「Oracle Database 12c Release 1」、「ヘルプを表示」、「オンライン・フォーラムに移動」の順に選択します。