ここでは、プロジェクトで使用できるデータベースへの接続を IDE で作成するときの基本について説明します。
ここでは、次の内容を取り上げています。
データベースへの接続を設定すると、JDBC 準拠のデータベースに関係する次の簡単な操作を行うことができます。
-
データベースへの接続
-
データベース構造の作成、参照、編集
-
接続されたデータベースへの書き込み、編集、SQL コマンドの実行
-
SQL クエリーの入力と結果の即時表示
-
複数データベースへの同時接続
-
異なるベンダーのデータベースへの表のスキーマの移植
IDE でプロジェクトを開発する場合に、作成したデータベース接続を使用できます。さらに、IDE を使用して、データベース接続プールを設定し、Sun Java System Application Server にアプリケーションで使用するリソースを登録できます。
リソースの設定
データベースとの接続には、Java[tm] Database Connectivity (JDBC[tm]) テクノロジを使用します。JDBC アプリケーションプログラミングインタフェース (API) は、SQL (Structured Query Language) 言語をサポートするデータベースに接続するための Sun の API です。JDBC API は、Connection や ResultSet、Statement などのオブジェクト指向のオブジェクトからなる 1 つのパッケージになっています。それぞれのオブジェクトには、connect() や close()、prepareStatement() などのさまざま API メソッドが含まれています。これらのオブジェクトおよびメソッドは、このあと実際に使用します。このためには、SQL をサポートしているデータベースを使用する必要があります。
データベースは、データベースサーバーで動作します。Sun Java System Application Server または JDBC-準拠の SQL サーバーにバンドルされているデータベースサーバーを使用できます。サーバーリソースがある場合、それらを IDE およびプロジェクトで使用できるようにする必要があります。
バンドルされているデータベース
IDE に Sun Java System Application Server がバンドルされているか、または IDE に Sun Java System Application Server をインストールし、登録している場合は、次のいずれかのデータベースサーバーを使用できます。データベースサーバーにはいくつかのサンプルデータベースが含まれています。
-
Derby。Derby データベースは、Sun Java System Application Server 8.2 以降のリリースにバンドルされています。IDE に Sun Java System Application Server 8.2 を登録している場合は、「ツール」>「Derby データベース」>「Derby サーバーを起動」を選択することで、メインメニューから直接 Derby サーバーを起動および停止し、データベースを作成できます。サーバーの起動時に、「出力」ウィンドウに次のように表示されます。
Server is ready to accept connections on port 1527.
-
PointBase。Pointbase データベースは、Sun Java System Application Server 8.1 にバンドルされています。IDE に Sun Java System Application Server 8.1 を登録している場合は、「ツール」>「Pointbase データベース」>「ローカル PointBase データベースを起動」を選択することで、メインメニューから直接 Pointbase データベースサーバーを起動および停止できます。このあと、「出力」ウィンドウに次のように表示されます。
Starting Server C:\Program Files\Java\jdk1.5.0_01\bin\java
Server started, listening on port 9092, display level: 0 ...
その他のデータベース
操作できるデータベースは、Pointbase または Derby データベースのみに限られません。IDE でデータベースサーバーと通信するには、JDBC API をサポートし、JDBC 呼び出しを、SQL データベースが使用するネットワークプロトコルに変換するドライバ (「JDBC ドライバ」) が必要です。その他のデータベースを操作するには、データベースサーバーと JDBC ドライバをインストールする必要があります。
データベースへの接続
データベースへの接続を作成する場合、「実行時」ウィンドウの「データベース」ノードを使用します。「実行時」ウィンドウが開かない場合は、メインメニューから「ウィンドウ」>「実行時」(Ctrl-5) を選択して開くことができます。「データベース」ノードを展開し、使用可能なドライバおよびデータベース接続を表示します。
「実行時」ウィンドウの「ドライバ」ノードに、IDE で使用可能なドライバが表示されます。システム構成に応じて、Derby または Pointbase データベースドライバがすでに使用できることがあります。使用するデータベースサーバーのドライバが表示されていない場合は、IDE およびプロジェクトでデータベースを操作する前に、ドライバを追加する必要があります。
|
アイコン
|
説明
|
|
|
IDE によって読み込み可能で、データベースとの接続に使用可能なドライバ。
|
|
|
ドライバの JAR または ZIP ファイルが指定の場所に存在しないため、IDE がデータベースへの接続に使用できないドライバ。場所は、ドライバのノードを右クリックし、「カスタマイズ」を選択することによって変更することができます。
|
データベースドライバアイコンを示す表
「実行時」ウィンドウで、データベースサーバーのドライバを使用して、データベース接続を作成します。データベース接続を作成したら、データベースに接続して、変更したり、アプリケーションでデータベースを使用したりできます。
データベースドライバの追加
データベースドライバを追加するには、「ドライバ」ノードを右クリックし、ポップアップメニューから「新規ドライバ」を選択します。「新規 JDBC ドライバ」ダイアログが表示されます。「追加」をクリックしてデータベースドライバがある場所に移動し、データベースドライバの JAR または ZIP ファイルを選択します。ドライバを選択すると、ダイアログに、ドライバクラスと名前が表示されます。
「ドライバクラス」フィールドが空か値が正しくない場合は、「検索」をクリックします。選択された JAR ファイル内が調べられ、JDBC API ドライバインタフェース (java.sql.Driver) を実装しているすべてのクラスが検出されます。「ドライバクラス」ドロップダウンリストから、正しいドライバクラスを選択し、「了解」をクリックします。新しいドライバを追加したら、「ドライバ」ノードを展開すると、新しいドライバの新しいノードが表示されます。「ドライバ」ノードには、使用できる登録済みドライバがそれぞれノードとして表示されます。
データベースドライバを IDE から使用できるようにしたら、さらに、プロジェクトからそのドライバを使用できるようにする必要があります。この段階では、IDE を使用して、データベースにアクセスし、変更することはできますが、プロジェクトからデータベースにアクセスしたり、変更したりすることはできません。プロジェクトからデータベースにアクセスするには、プロジェクトで使用できるデータベース接続を作成する必要があります。
データベース接続の確立
データーベースへの接続を確立するには、まずデータベースサーバーが動作中であることを確認します。IDE にバンドルされているいずれかのデータベースサーバーを使用する場合は、「ツール」メニューから Derby または Pointbase データベースを選択し、「起動」を選択して、データベースを起動できます。データベースの準備ができると、「出力」ウィンドウに、サーバーが起動したことを示すメッセージが表示されます。
データベースサーバーでデータベースへの接続を開くには、まず、接続の詳細を指定する必要があります。詳細を指定して、接続を作成する必要があるのは 1 回だけで、初期接続の設定後は、「実行時」ウィンドウのデータベース接続ノードを使用して、簡単にデータベースに接続したり、切断したりできます。
データベース接続を作成するには、ドライバノードを右クリックし、「接続」を選択して、「データベースの新規接続」ダイアログを開きます。
「データベースの新規接続」ダイアログ
データベースサーバーのデータベース URL とユーザー名およびパスワードを指定します。たとえば、バンドルされた Derby データベースのローカルインストール上のデータベース sample に接続する場合、データベース URL は次のようになります。
jdbc:derby://localhost:1527/sample
必要な接続の詳細を入力したら、「了解」をクリックします。「了解」をクリックすると、次の 2 つのことが行われます。
-
データベースへの接続が開きます。
-
「データベース」ノードの下にデータベース接続ノードが表示されます。
データベース接続の操作
「実行時」ウィンドウの各データベース接続ノードは、データベースへの接続を表しています。使用するデータベースサーバーで、各データベースへの個別の接続を設定する必要があります。データベース接続ノードを使用して、次のことを行うことができます。
-
データベース接続の状態を確認する。データベースに接続すると、データベース接続アイコンが完全になります。
-
ノードを右クリックし、「接続」または「接続を解除」を選択して、データベースへの接続を開くか、閉じる。
-
ノードを右クリックし、「プロパティー」を選択して、データベースの場所および使用されているドライバなどの接続のプロパティーを表示する。
-
ノードを右クリックし、「コマンドを実行」を選択して、SQL エディタで SQL コマンドを実行する。SQL エディタを使用して、接続したデータベースに対し、SQL コマンドを作成し、実行することができます。
ドライバとデータベース接続を表示した「実行時」ウィンドウの「データベース」ノード
データベースに接続したら、データベース接続ノードを展開し、データベースの構造を表示できます。データベース接続ノードの下のノードを右クリックし、コマンドにアクセスして、表や列の作成、入力、削除など、データベースの構造を変更できます。また、表や列を右クリックし、ポップアップメニューから「データを表示」を選択して、表と列のデータを簡単に表示することもできます。
-
表を作成するには、SQL エディタで SQL コマンドを実行するか、「表を作成」ダイアログを使用します。「表を作成」ダイアログを使用した場合、auto_increment プロパティーを設定できないので、表に値を追加するときに、主キーに手動で新しい値を追加する必要があります。
データベース接続プールの設定
データベース接続プールとは、特定の 1 つのデータベースに関して再利用可能な接続をまとめたもので、サーバーによって維持されます。データベースへの接続を要求するアプリケーションは、この接続プールから接続を取得します。アプリケーションが接続を閉じると、この接続はプールに返されます。接続プールで使用されるプロパティーは、データベースのベンダーによって異なります。一般的に使用されるプロパティーは、データベース名としての URL、ユーザー名、およびパスワードです。
データベース接続プールを設定する場合、JDBC リソース (データソースとも呼ばれる) も作成します。JDBC リソースからは、アプリケーションに対してデータベースへの接続が提供されます。一般に、JDBC リソースは、アプリケーションがアクセスするデータベースごとに少なくとも 1 つ存在します。1 台のデータベースに対して複数の JDBC リソースを指定することもできます。
接続プールを作成するには、次のものがあることを確認する必要があります。
-
開いているエンタープライズアプリケーションまたは Web アプリケーション。
-
動作中のデータベースサーバーへのアクセス。データベースに接続するには、IDE にデータベースサーバーの正しいドライバが登録されている必要があります。
-
使用するデータベースへの接続。使用可能なデータベース接続を表示するには、「実行時」ウィンドウの「データベース」ノードを展開します。
-
IDE に登録された Sun Java System Application Server などの動作中の配備サーバー。サーバーが登録されていない場合は、メインメニューの「ツール」>「サーバーマネージャー」に移動し、サーバーマネージャーを使用して、サーバーを登録できます。
Sun Java System Application Server にアプリケーションを配備している場合、IDE で「新規ファイル」ウィザードを使用し、データベース接続プールと必要なデータソースを簡単に設定できます。アプリケーションの JDBC リソースおよび接続プールを作成するには、IDE の「新規ファイル」ウィザードを開き、「Sun リソース」カテゴリを選択して、作成するリソースの種類を選択します。「新規ファイル」ウィザードを使用して、次のことを行えます。
-
既存のデータベース接続または接続したデータベースから、接続情報を抽出して、接続プールを作成する
-
既存の接続プールを使用して JDBC リソースを作成するか、またはウィザード内で新規接続プールを作成する
「新規ファイル」ウィザードを使用して、接続プールを設定すると、指定した接続に基づいて必要なファイルが生成されます。アプリケーションをサーバーに配備すると、Sun Java System Application Server にリソースが登録されます。
Sun Java System Application Server 以外のサーバーにアプリケーションを配備している場合は、リソースのソースファイルを編集して、リソースを設定する必要があります。