Oracle Database 2日でJava開発者ガイド 11g リリース1(11.1) E05692-02 |
|
この章は、この後に続く5つの章の最初の章です。これらの章では、Oracle Databaseにアクセスし、そのデータを表示、変更、削除および更新するJavaアプリケーションの各部分を作成する方法について説明します。Javaアプリケーションからデータベースにアクセスするには、java.sql.Connection
オブジェクトを使用してデータベースに接続する必要があります。
この章は次の項で構成されています。
JDeveloperでデータベース接続を設定および管理して、アプリケーションをOracle Databaseやオフライン・データベース・オブジェクトなどの外部データソースと通信可能にすることができます。これは、接続ナビゲータを使用して行います。アプリケーション・サーバーへの接続など、アプリケーションが必要とする他の接続の管理にも同じナビゲータを使用します。次の項目では、接続ナビゲータを使用してデータベースとそのオブジェクトを表示し、データベースへの接続を作成する方法について説明します。
接続ナビゲータには、現在定義されている接続がすべて表示されます。接続ナビゲータを表示するには、JDeveloperの画面左上にあるナビゲータ・パネルで「接続」タブ(表示されている場合)を選択するか、「表示」メニューを使用します。JDeveloper IDEのデフォルトのレイアウトは、図1-1を参照してください。
接続ナビゲータを使用して、表示されている接続を参照できます。特に、データベース・スキーマについては、データベース・オブジェクト、表、ビューおよびそれらの内容を表示することもできます。
データベース接続は、「データベース」ノードの下に表示されます。データベース内のオブジェクトを表示するには、接続を開きます。スキーマを開くと、そのスキーマ内のオブジェクト・タイプのノードが表示されます。オブジェクト・タイプのノードを開くと、個々のオブジェクトが表示されます。表のノードを開くと、表の構造および表内のデータを表示できます。
接続の詳細がわかっている任意のデータベースに接続できます。データベース接続を作成するときは、ユーザー名とパスワードを指定する必要があります。デフォルトでは、接続で指定したユーザーのスキーマのみを表示できます。
接続を作成するには、次の手順を実行します。
DBConnection1
およびOracle (JDBC)
)を変更しないでください。「次へ」をクリックします。ウィザードの「認証」画面が表示されます。
HR
と入力します。「ロール」の値は入力せず、「パスワードを配布」を選択します。「次へ」をクリックします。ウィザードの「接続」画面が表示されます。
次の情報を入力します。
JDeveloperでデータベースから切断するには、接続ナビゲータで、接続名を右クリックして「切断」を選択します。接続ナビゲータの表示には接続名のみが表示され、ノードを開くためのプラス(+)記号は表示されなくなります。データベースに再接続するには、接続名を右クリックして「接続」を選択します。
データベースへの接続を正常に確立した後で、その内容を接続ナビゲータで表示できます。接続ナビゲータには、データベース、そのオブジェクト、それらのインスタンスおよびそれぞれの内容について、ナビゲーション可能な階層ツリー構造が表示されます。作成したデータベース接続の階層の各レベルで内容を表示するには、次の手順を実行します。
HR
)が表示されます。
HR
スキーマ内のすべてのオブジェクトのリストを表示するには、「HR」ナビゲーション・ツリーを開きます。あるオブジェクト・タイプ(たとえば表)についてインスタンスのリストを表示するには、「表」ナビゲーション・ツリーを開きます。表のデータを表示するには、表の構造の下にある「データ」タブを選択します。表のデータを表示して参照できます。
JDeveloperでは、アプリケーション内で作業を行い、アプリケーション内で、多数のプロジェクトに編成できます。JDeveloperには多数のアプリケーション・テンプレートがあり、標準的なタイプのアプリケーションに合うプロジェクト構造を、比較的迅速かつ簡単に作成するために役立ちます。JDeveloperでアプリケーションを作成する際は、構築するアプリケーションのタイプに合ったアプリケーション・テンプレートを選択します。
選択したアプリケーション・テンプレートによって、初期のプロジェクト構造(アプリケーション内で指定したプロジェクト・フォルダ)および含まれるアプリケーション・テクノロジが決まります。その後に、個々のアプリケーションに必要な特別なライブラリやテクノロジを追加できます。必要に応じて、追加のプロジェクトを作成することもできます。
アプリケーション・ナビゲータには、アプリケーションとプロジェクトがすべて表示されます。JDeveloperを初めて起動すると、JDeveloper IDEの左側にデフォルトでアプリケーション・ナビゲータが表示されます。
アプリケーション・ナビゲータを表示するには(表示されていない場合)、JDeveloper画面の左上にあるナビゲータ・パネルで「アプリケーション」タブをクリックするか、「表示」メニューで「アプリケーション・ナビゲータ」を選択します。
アプリケーション・ナビゲータには、プロジェクト内の項目の論理的なグループが表示されます。個々の項目の構造を表示するには、項目を選択して、その構造を構造ウィンドウに表示できます。
アプリケーション・ナビゲータから、適切なデフォルトのエディタに項目を表示できます。たとえば、Javaファイルをダブルクリックすると、ファイルはJavaソース・エディタに開きます。JavaServer Pages(JSP)ファイルをダブルクリックすると、JSP/HTMLビジュアル・エディタに開きます。
JDeveloperの使用を開始するには、アプリケーションを作成する必要があります。また、作業を格納するためのプロジェクトを少なくとも1つ作成する必要があります。手順は次のとおりです。
HRApp
と入力し、「アプリケーション・テンプレート」リストで「テンプレートなし[すべてのテクノロジ]」を選択します。「OK」をクリックします。「プロジェクトの作成」ダイアログ・ボックスが表示されます。view
と入力します。
HRApp
アプリケーションがアプリケーション・ナビゲータに表示されます。
プロジェクトのテクノロジ範囲内で利用可能なクラスのJavadocまたはコードをJDeveloperで表示できます。また、それらのクラスに対して利用可能なすべてのメソッドの詳細を表示できます。
たとえば、Connection
クラスのコードまたはJavadocを表示するには、次の手順を実行します。
Connection
クラスの場合、まずConnection
と入力し、表示されるリストで「Connection (java.sql)」を選択します。ここまでは、JDeveloperからデータベースに接続する方法を見てきました。Javaアプリケーションから接続を起動するには、JDBC Application Program Interface(API)のConnection
オブジェクトを使用します。
この項では、Javaアプリケーションからのデータベースへの接続について、次の項目で説明します。
Javaでは、DataSource
オブジェクトのインスタンスを使用してデータベースへの接続を取得します。DataSource
インタフェースは、以前のJDBC DriverManager
クラスに完全に置き換わるものです。oracle.jdbc.pool
パッケージのOracleDataSource
クラスにより、javax.sql.DataSource
インタフェースが実装されました。オーバーロードされたgetConnection
メソッドによって、データベースへの物理接続が返されます。
そのDataSource
オブジェクトに適したset
xxx
メソッドを使用してプロパティを設定することも、これらのプロパティを入力パラメータとして受け入れるgetConnection
メソッドを使用することもできます。
表3-1に、DataSource
の主要なプロパティを示します。
DataSource
オブジェクトのurl
プロパティを必要なすべてのパラメータとともに設定すると、他のプロパティを設定したり、getDBConnection
メソッドに追加パラメータを指定しなくても、データベースに接続できます。データベースURLの設定の詳細は、「データベースURLの指定」の項を参照してください。
データベースURLは、DataSource
オブジェクトのurl
プロパティの値に指定する文字列です。完全なURLの構文は次のとおりです。
jdbc:oracle:driver_type:[username/password]@database_specifier
URLの最初の部分には、使用するJDBCドライバを指定します。クライアント側アプリケーションでサポートされているdriver_type
の値は、thin
およびoci
です。大カッコは、ユーザー名とパスワードの組合せがオプションであることを示します。database_specifier
の値は、アプリケーションが接続されるデータベースを示します。
次に示すのは、ThinドライバによってサポートされるThinスタイルのサービス名の構文です。
jdbc:oracle:
driver_type
:[
username
/
password
]@//
host_name
:
port_number
:
SID
例3-1に、このマニュアルで作成するサンプル・アプリケーションで、ユーザー名とパスワードを指定し、さらにデータベースがローカルに格納されている場合のデータベース接続URLを示します。
jdbc:oracle:thin:hr/hr@localhost:1521:UORCL
Oracle Databaseに、新しい接続機能があります。Oracle Databaseクライアントをインストールすると、接続URLのデータベース識別子部分に詳細を指定する必要はありません。一定の条件では、Oracle Database接続アダプタに必要な指定は、データベースがインストールされているコンピュータのホスト名のみです。
Oracle Databaseに導入されたこの機能により、JDBC接続URLの構文の一部はオプションになります。
jdbc:oracle:
driver_type
:[
username/password
]@[//]
host_name
[:
port
][:ORCL]
このURLでは、次のようになります。
:port
はオプションです。デフォルトのOracle Netリスナー・ポート(1521)が使用されない場合にのみ、ポートを指定します。
:ORCL
(サービス名)はオプションです。Oracle Databaseクライアントの接続アダプタは、ホスト上のデフォルトのサービスに接続します。これは、ホストのlistener.ora
ファイルで、ORCL
に設定されています。
例3-2に、listener.ora
ファイルの基本構成を示します。ここでは、デフォルトのサービスが定義されています。
MYLISTENER = (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=test555)(PORT=1521)) ) DEFAULT_SERVICE_MYLISTENER=dbjf.regress.rdbms.dev.testserver.com SID_LIST_MYLISTENER = (SID_LIST= (SID_DESC=(SID_NAME=dbjf)(GLOBAL_DBNAME=dbjf.regress.rdbms.dev.testserver.com)(ORACLE_ HOME=/test/oracle)) )
listener.ora
ファイルを変更した後で、次のコマンドを使用してリスナーを再起動する必要があります。
> lsnrctl start mylistener
この構成では、次のURLになります。
jdbc:oracle:thin:@//test555.testserver.com jdbc:oracle:thin:@//test555.testserver.com:1521 jdbc:oracle:thin:@test555.testserver.com jdbc:oracle:thin:@test555.testserver.com:1521 jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test555.testserver.com)(POR T=1521))) jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test555.testserver.com))) jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=test555.testserver.com)(POR T=1521))(CONNECT_DATA=(SERVICE_NAME=)))
Javaアプリケーションの作成では、最初にJavaクラスを作成します。次の手順では、DataHandler
という名前のクラスを作成する方法について説明します。このクラスには、データベースを問い合せてそのデータを変更するメソッドが含まれます。
DataHandler
と入力し、「パッケージ」としてhr
と入力します。「オプション属性」のデフォルト値は変更せず、「OK」をクリックします。図3-7に、適切な値が指定された「Javaクラスの作成」ダイアログ・ボックスを示します。DataHandler
スケルトン・クラスが作成され、Javaソース・エディタに表示されます。パッケージ宣言、クラス宣言およびデフォルトのコンストラクタがデフォルトで作成されます。図3-8に、Javaソース・エディタに表示されたクラスを示します。独自のJavaコードを追加できます。Oracle JDeveloperには、Javaアプリケーション・プログラミングに役立つ標準ライブラリがあります。これらのライブラリには、Application Development Framework(ADF)、JDBC用のOracleライブラリ、JSPなどのAPIサポートが含まれています。
プロジェクトでJDBCを使用するには、Oracle JDBCライブラリをプロジェクトにインポートします。同様に、JSPテクノロジを使用するには、JSPランタイム・ライブラリをインポートします。
Oracle JDBCライブラリの主要なパッケージは、次のとおりです。
oracle.jdbc
: oracle.jdbc
パッケージのインタフェースは、java.sql
パッケージのインタフェースに対するOracleの拡張機能を定義します。これらの拡張機能によって、Oracle SQL形式のデータおよびその他のOracle固有の機能(Oracleのパフォーマンス拡張など)にアクセスできます。
oracle.sql
: oracle.sql
パッケージは、SQL形式のデータへの直接アクセスをサポートします。このパッケージは、主に、SQLデータへのJavaマッピングを提供するクラスとそれらのサポート・クラスによって構成されます。
oracle.jdbc.pool
: このパッケージには、データベースへの接続を取得するために使用されるOracleDataSource
クラスが含まれています。オーバーロードされたgetConnection
メソッドによって、データベースへの物理接続が返されます。
このライブラリには、JDeveloperに付属のOC4JサーバーでJSPファイルを解析して実行するために必要なクラスおよびタグ・ライブラリが含まれています。
プロジェクトにライブラリを含めるには、次の手順を実行します。
view
プロジェクトに追加されたOracle JDBCライブラリを示します。
JavaアプリケーションでJDBCを使用するには、次のJDBCパッケージをインポートします。
DataHandler.java
クラスがJavaソース・エディタで開かれていない場合は、アプリケーション・ナビゲータで、Viewプロジェクト、「アプリケーション・ソース」および自分のパッケージ(「hr」)を開き、「DataHandler.java」をダブルクリックします。
import
文を入力します。package hr; import java.sql.Connection; import oracle.jdbc.pool.OracleDataSource;
接続情報は、接続変数(接続URL、ユーザー名および対応するパスワード)を使用して接続メソッドに渡されます。
JDeveloperのJavaソース・エディタを使用して、DataHandler.java
クラスを次のように編集します。
DataHandler
コンストラクタの後に行を追加し、3つの接続変数を次のように宣言します。
String jdbcUrl = null; String userid = null; String password = null;
これらの変数は、ユーザーがログイン時に入力した値をアプリケーションで保持し、ユーザーを認証してデータベースへの接続を作成するために使用されます。jdbcUrl
変数は、接続するデータベースのURLを保持するために使用されます。userid
およびpassword
変数は、ユーザーを認証し、セッションで使用されるスキーマを識別するために使用されます。
Connection conn;
これで、Javaクラスには例3-4のコードが含まれます。
package hr; import java.sql.Connection; import oracle.jdbc.pool.OracleDataSource; public class DataHandler { public DataHandler() { } String jdbcUrl = null; String userid = null; String password = null; Connection conn; }
データベースに接続するには、次のようにメソッドを作成します。
public void getDBConnection() throws SQLException
Javaコード・インサイト機能によって、SQLException
エラー処理パッケージのインポートを促すメッセージが表示されます。[Alt]キーを押しながら[Enter]キーを押してインポートします。import java.sql.SQLException
文がインポート・パッケージのリストに追加されます。
{
)を追加し、[Enter]キーを押します。JDeveloperによって自動的に閉じカッコが作成され、カッコの間の新しい空の行にカーソルが置かれます。
OracleDataSource
インスタンスを宣言します。
OracleDataSource ds;
OracleDataSource
オブジェクトを追加します。
ds = new OracleDataSource();
DataSource
オブジェクトのURLを設定します。
ds.setURL(jdbcUrl);
Javaコード・インサイトによって、選択可能なOracleDataSource
メソッドのリストが表示されます。リストをスクロールしてsetURL(String)
メソッドを選択し、[Enter]キーを押してコードに挿入します。このファンクションのカッコ内に、jdbcUrl
と入力します。
図3-10に、JDeveloperのJavaコード・インサイト機能がコードの挿入にどのように役立つかを示します。
conn = ds.getConnection(userid,password);
通常、Javaコード・インサイトによってds
のメソッドのリストが表示されます。今回は、getConnection(String,String)
を選択します。カッコ内に、userid
,password
と入力します。行の最後にセミコロン(;)を付けます。
コードは、例3-5のコードのようになります。
package hr; import java.sql.Connection; import java.sql.SQLException; import oracle.jdbc.pool.OracleDataSource; public class DataHandler { public DataHandler() { } String jdbcUrl = null; String userid = null; String password = null; Connection conn; public void getDBConnection() throws SQLException{ OracleDataSource ds; ds = new OracleDataSource(); ds.setURL(jdbcUrl); conn=ds.getConnection(userid,password); } }
|
![]() Copyright © 2007 Oracle Corporation. All Rights Reserved. |
|