corner imagecorner image
IDEPlatformPluginsDocs & SupportCommunityPartners

Java DB (Derby) データベースの操作

このドキュメントでは、NetBeans IDE で Sun の Java DB データベースへの接続を設定する方法を紹介します。いったん接続が作成されると、IDE でデータベースの操作を開始することができ、表の作成、表へのデータの生成、および SQL 文やクエリーの実行が可能になります。

Java DB データベースは、Sun がサポートする Apache Derby のディストリビューションです。Java DB は、完全なトランザクション型で、規格に準拠した、安全なデータベースサーバーです。すべて Java で記述されており、SQL、JDBC API、および Java EE テクノロジを完全にサポートしています。Java DB データベースは GlassFish アプリケーションサーバーとともにパッケージ化されており、JDK 6 にも含まれています。Java DB データベースの詳細は、公式ドキュメントをお読みください。

予想される所要時間: 30

目次

このページの内容は NetBeans IDE 6.9 および 7.0 が対象です

このチュートリアルに従うには、次のソフトウェアとリソースが必要です。

ソフトウェアまたはリソース 必須バージョン
NetBeans IDE 6.8、6.9、または 7.0 Java ダウンロード
Java Development Kit (JDK) version 6 または version 5
Java DB version 10.4.x

注: Java DB は、JDK 6 および GlassFish アプリケーションサーバー (v2 および v3) に含まれています。これらのいずれかのソフトウェア製品のインストール中に、同時にインストールされます。

データベースの構成

NetBeans IDE のインストールで GlassFish Enterprise サーバーを登録した場合、Java DB はすでに登録されています。このため、「サーバーの起動とデータベースの作成」に進むことができます。

GlassFish アプリケーションサーバーを別途ダウンロードしていて、NetBeans IDE への登録方法が不明な場合は、IDE のヘルプ目次 (F1) にある「GlassFish アプリケーションサーバーインスタンスの登録」を参照してください。

Java DB を単独でインストールした場合は、次の手順に従います。

  1. 自己抽出型のファイルを実行します。このファイルと同じ場所に「javadb」というフォルダが作成されます。Java DB をダウンロードしただけで、抽出先とは異なる場所にデータベースサーバーを置く場合は、ここで場所を変更します。
  2. システム上で、データベースサーバーの個々のインスタンスのホームディレクトリとして使用する新しいディレクトリを作成します。たとえば、このフォルダを Java DB ルートディレクトリ (javadb) などの場所に作成できます。

次に進む前に、Java DB のルートディレクトリにあるコンポーネントについて理解しておく必要があります。

  • demo サブディレクトリには、すべてのデモプログラムが含まれています。
  • bin サブディレクトリには、ユーティリティーの実行や環境設定用のスクリプトが含まれています。
  • javadoc サブディレクトリには、ソースコードのコメントから生成された API のドキュメントが含まれています。
  • docs サブディレクトリには、Java DB のドキュメントが含まれています。
  • lib サブディレクトリには、Java DB jar ファイルが含まれています。

NetBeans IDE へのデータベースの登録

データベースを構成すると、IDE でそのデータベースを登録できます。

  1. 「サービス」ウィンドウで「Java DB」データベースノードを右クリックし、「プロパティー」を選択します。

    「Java DB 設定」ダイアログが表示されます。

  2. 「Java DB インストール」テキストフィールドに、前の手順で指定した Java DB のルートディレクトリ (javadb) のパスを入力します。

  3. 「データベースの場所」には、作成したホームディレクトリのパスを設定するか、デフォルトの設定のままにします。次の画面は、Java DB サーバーの設定例を示しています。完了したら、「了解」をクリックします。
    「Java DB 設定」ダイアログ

サーバーの起動とデータベースの作成

「サービス」ウィンドウで「Java DB」ノードを右クリックすると、Java DB データベースのメニューオプションが表示されます。このコンテキストメニューの項目を使用して、データベースサーバーの起動や停止、新規データベースインスタンスの作成、および IDE へのデータベースサーバーの登録 (前の手順で紹介) ができます。データベースサーバーを起動するには、次の手順に従います。

  1. 「サービス」ウィンドウで「Java DB」ノードを右クリックし、「サーバーを起動」を選択します。「出力」ウィンドウの次の出力は、サーバーが起動したことを示しています。

    データベースサーバー起動後の「出力」ウィンドウの表示
  2. 「Java DB」ノードを右クリックし、「データベースを作成」を選択します。

    「Java DB データベースを作成」ダイアログが開きます。
  3. 「データベース名」テキストフィールドに「contact」と入力します。また、ユーザー名とパスワードを「nbuser」に設定します。
    「データベースの場所」は、GlassFish からの Java DB のインストール中に設定したデフォルトの場所です。Java DB を個別にインストールした場合、この場所は異なります。
    「了解」をクリックします。

    「Java DB データベースを作成」ダイアログ

データベースへの接続

ここまでの手順で、データベースサーバーを起動させ、constant というデータベースインスタンスを IDE に作成することに成功しました。「サービス」ウィンドウからアクセスできる、NetBeans IDE のデータベースエクスプローラには、データベース構造での一般的なタスク用の機能が用意されています。これには、次のものがあります。

  • 表の作成、削除、変更
  • 表へのデータの生成
  • 表形式のデータの表示
  • SQL 文とクエリーの実行

contact データベースの操作を始めるには、そのデータベースへの接続を作成する必要があります。contact に接続するには、次の手順に従います。

  1. 「サービス」ウィンドウでデータベースエクスプローラを展開し、新しいデータベースを指定します。

    「サービス」ウィンドウ内の contact データベース
    sample [APP の app] は、デフォルトのデータベーススキーマです。
  2. データベース接続ノード (jdbc:derby://localhost:1527/car_database[NBUSER の nbuser]) を右クリックし、「接続」を選択します。

    接続ノードのアイコンの全体が表示されます (接続ノードのアイコン)。これは接続に成功したことを示します。
  3. 便利なデータベース表示名を作成します。これを行うには、データベース接続ノード (jdbc:derby://localhost:1527/car_database[NBUSER の nbuser]) を右クリックし、「プロパティー」を選択します。「表示名」の横にある省略符号 (...) ボタンをクリックし、テキストフィールドに「Contact DB」と入力します。
    これで、IDE でのより便利な表示名がこのデータベースに付けられました。

表の作成

作成した contact データベースは現在空です。まだ表やデータは含まれていません。NetBeans IDE では、「表を作成」ダイアログを使用するか、SQL 文を入力して SQL エディタから直接実行することで、データベースに表を追加できます。次の両方の方法について学習できます。

「表を作成」ダイアログの使用

  1. contact 接続ノードを展開すると、複数のスキーマサブノードがあることがわかります。app スキーマは、このチュートリアルに適用する唯一のスキーマです。「APP」ノードを右クリックし、「デフォルトのスキーマとして設定」を選択します。

  2. 「APP」ノードを展開します。「表」、「ビュー」、「プロシージャ」の 3 つのサブフォルダがあります。「表」ノードを右クリックし、「表を作成」を選択します。
    「表を作成」ダイアログが開きます。

  3. 「表名」テキストフィールドに「FRIENDS」と入力します。
  4. 「列を追加」をクリックします。「列を追加」ダイアログが表示されます。
  5. 「列名」に「id」と入力します。「データ型」のドロップダウンリストから「INTEGER」を選択します。
  6. 「制約」で「主キー」チェックボックスを選択して、この列が表の主キーであることを指定します。リレーショナルデータベースにあるすべての表に、主キーを含める必要があります。「主キー」チェックボックスを選択すると、「索引」および「一意」チェックボックスが自動的に選択され、「Null」チェックボックスが選択解除されます。これは、主キーを使用してデータベース内の行を一意に識別するためです。デフォルトでは、主キーは表の索引として使用されます。すべての行が識別される必要があるため、主キーに Null 値を含むことはできません。
    表への列の追加
  7. この手順を繰り返し、次の表に示すようにフィールドを指定します。
  8. キー 索引 Null 一意 列名 データ型 サイズ
    [選択] [選択] [選択] id INTEGER 0
    [選択] firstName VARCHAR 20
    [選択] lastName VARCHAR 20
    [選択] nickName VARCHAR 30
    [選択] friendSince DATE 0
    [選択] email VARCHAR 60

    作成中の FRIENDS という表は、連絡先レコードごとに次のデータを保持します。

    • ニックネーム
    • 知り合った日付
    • 電子メールアドレス
    「表を作成」ダイアログで連絡先の表用のフィールドを選択したところ
  9. 「表を作成」ダイアログが上に示す指定と同じになっていることを確認したら、「了解」をクリックします。IDE によってデータベースに FRIENDS 表が生成され、データベースエクスプローラの「表」の下に新しい「FRIENDS」表ノード (表ノードのアイコン) が表示されていることを確認できます。この表ノードの下に、主キー (主キーノードのアイコン) を先頭に列 (フィールド) が一覧表示されます。

    「サービス」ウィンドウに表示された「FRIENDS」表

SQL エディタの使用

  1. データベースエクスプローラで「Contact DB」接続ノードまたはその下にある「表」ノードを右クリックし、「コマンドを実行」を選択します。メインウィンドウ内に SQL エディタが開き、空白のキャンバスが表示されます。
  2. SQL エディタに次のクエリーを入力します。これは、作成する COLLEAGUES 表の表定義です。
    CREATE TABLE "COLLEAGUES" (
        "ID" INTEGER not null primary key,
        "FIRSTNAME" VARCHAR(30),
        "LASTNAME" VARCHAR(30),
        "TITLE" VARCHAR(10),
        "DEPARTMENT" VARCHAR(20),
        "EMAIL" VARCHAR(60)
    );

    注: SQL エディタで作成した文およびクエリーは、SQL (Structured Query Language) で構文解析されます。SQL は厳密な構文規則に準拠しています。IDE のエディタで作業をするときは、これらの規則を理解しておいてください。SQL 構文はまた、データベース管理システムによって異なることがあります。具体的なガイドラインについては、『Java DB Reference Manual』を参照してください。

  3. エディタ最上部のタスクバーにある「SQL を実行」(「SQL を実行」ボタン) ボタンをクリックします (Ctrl-Shift-E)。「出力」ウィンドウ (Ctrl-4) に、文の実行に成功したことを示すメッセージが表示されます。

    「出力」ウィンドウに実行成功が示される
  4. 変更内容を確認するには、データベースエクスプローラで「Contact DB」接続ノードを右クリックし、「再表示」を選択します。これで、指定したデータベースの現在の状態に合わせて実行時 UI コンポーネントが更新されます。NetBeans IDE で SQL エディタからクエリーを実行するときは、この手順が必要です。「サービス」ウィンドウの「表」の下に「COLLEAGUES」表ノード (表ノードのアイコン) が新しく表示されます。

表へのデータの追加

contact データベースに 1 つ以上の表を作成したので、表へのデータの生成を開始できます。表にレコードを追加するには、次のようないくつかの方法があります。

これらのすべての方法を学習し、FRIENDS 表にデータを生成するには、次の各節を参照してください。

SQL 文の実行

  1. データベースエクスプローラで「表」ノードを展開し、「FRIENDS」表を右クリックして「コマンドを実行」を選択します。SQL エディタウィンドウ内に空白のキャンバスが表示されます。
  2. SQL エディタに次の文を入力します。入力中は SQL エディタのコード補完を使用できます。
    INSERT INTO APP.FRIENDS VALUES (1,'Theodore','Bagwell','T-Bag','2004-12-25','tbag@foxriver.com')
  3. SQL エディタ内を右クリックし、「文を実行」を選択します。「出力」ウィンドウに、文の実行に成功したことを示すメッセージが表示されます。
  4. FRIENDS 表に新しいレコードが追加されたことを確認するには、「サービス」ウィンドウで「FRIENDS」表ノードを右クリックし、「データを表示」を選択します。
    「データを表示」を選択すると、表からすべてのデータを選択する SQL クエリーが SQL エディタの上部区画に自動的に生成されます。文の結果は、SQL エディタの下部区画に表示されます。この場合、FRIENDS 表は下部区画に表示されます。SQL 文から供給されたデータを使用して、新しい行が追加されています。

    FRIENDS 表に追加された新しいレコード

SQL エディタの使用

  1. FRIENDS」表ノードを右クリックして、「データを表示」を選択します (前の節の最後の手順で実行しなかった場合)。
  2. 「レコードを挿入 (Alt+I)」ボタンをクリックして、行を追加します。
    「レコードを挿入」ダイアログが表示されます。
  3. 各セルでクリックして、レコードを入力します。Date データ型のセルでは、カレンダから日付を選択できます。完了したら、「了解」をクリックします。
    FRIENDS 表に追加された新しいレコード
    SQL エディタでは、行のヘッダーをクリックして結果をソートしたり、既存のレコードを変更および削除したり、(ポップアップメニューの「SQL スクリプトを表示」コマンドで) エディタで行なっている操作の SQL スクリプトを表示したりできます。

表の削除

次の手順では、外部 SQL スクリプトを使用して、新しい COLLEAGUES 表を作成します。しかし、COLLEAGUES 表は前述の「SQL エディタの使用」節で作成したばかりです。SQL スクリプトによって本当に新しい表が作成されることが明確に分かるよう、ここでは、すでに作成した COLLEAGUES 表を削除します。データベースの表を削除するには、次の手順に従います。

  1. データベースエクスプローラで表のノードを右クリックし、「削除」を選択します。
    表のノードは、確認なしですぐにデータベースエクスプローラから削除されるため、注意してください。

外部 SQL スクリプトの使用

外部 SQL スクリプトからコマンドを発行するのは、データベースを管理するのに一般的な方法です。ほかの場所で SQL スクリプトをすでに作成している場合、そのスクリプトを NetBeans IDE にインポートし、指定したデータベースに対して実行します。

これを実証するため、SQL を colleagues.sql からテキストファイルにコピーし、コンピュータ上の適切な場所に保存してください。このスクリプトは、COLLEAGUES という新しい表を作成し、その表にデータを生成します。contact データベースでこのスクリプトを実行するには、次の手順に従います。

  1. IDE のメインメニューから「ファイル」>「ファイルを開く」を選択します。ファイルブラウザで colleagues.sql ファイルを保存した場所に移動し、「開く」をクリックします。SQL エディタで自動的にスクリプトが開きます。
  2. エディタの最上部のツールバーにある「接続」ドロップダウンボックスで Contact DB への接続が選択されていることを確認します。

    SQL エディタのツールバーにある「接続」ドロップダウンボックス
  3. SQL エディタのタスクバーにある「SQL を実行」(「SQL を実行」ボタン) ボタンをクリックします。選択したデータベースに対してスクリプトが実行され、「出力」ウィンドウにフィードバックが生成されます。
  4. 変更内容を確認するには、「サービス」ウィンドウで「Contact DB」接続ノードを右クリックし、「再表示」を選択します。SQL スクリプトからの新しい COLLEAGUES 表が、「サービス」ウィンドウの「contact」の下に表ノードとして表示されます。
  5. 新しい表に含まれているデータを表示するには、COLLEAGUES 表を右クリックして「データを表示」を選択します。このように、表形式のデータと SQL スクリプトに含まれるデータとを比較して、一致しているかどうかを確認することもできます。

異なるデータベースの表の再作成

異なるデータベースにある表を、NetBeans IDE から操作中のデータベースで再作成したい場合、IDE には便利なツールが用意されています。まず、このチュートリアルの最初に説明したものに似た 2 つ目のデータベースが IDE に登録されている必要があります。このチュートリアルでは、NetBeans IDE と一緒に GlassFish アプリケーションサーバーをインストールしたときに、Java DB とともにパッケージ化されていた sample データベースを使用します。この手順は基本的に 2 つの段階に分けて実行されます。まず、選択した表の表定義を「保存」し、そのあと選択したデーベースに表を再作成できます。

  1. データベースエクスプローラで接続ノードを右クリックし、「接続」(ユーザー名およびパスワードは app) を選択して、sample データベースに接続します。
  2. 「表」ノードを展開します。「CUSTOMER」表ノードを右クリックし、「構造を保存」を選択します。

    「サービス」ウィンドウで表示された「構造を保存」メニュー項目
  3. 開いた「表を保存」ダイアログで、作成される保存 (grab) ファイルを配置する場所を指定します。「保存」をクリックします。保存ファイルには、選択した表の表定義が記録されます。
  4. データベースエクスプローラで、Contact DB データベース接続の下にある「表」ノードを右クリックし、「表を再作成」を選択します。
  5. 開いた「表を再作成」ダイアログで、CUSTOMER 保存ファイルを保存した場所に移動し、「開く」をクリックします。「表に名前を付ける」ダイアログが開きます。

    CUSTOMER の表定義を含む「表に名前を付ける」ダイアログ
  6. ここで表の名前を変更したり、表定義を編集したりできます。それらを行わない場合、「了解」をクリックすると、contact データベースにすぐに表が作成されます。「Contact DB」接続ノードの下に「CUSTOMER」表ノードが新しく表示されます。

    「サービス」ウィンドウに新しく表示された「CUSTOMER」表

関連項目

これで、「Java DB (Derby) データベースの操作」チュートリアルは終わりです。このチュートリアルでは、NetBeans IDE で Java DB データベースへの接続を設定する方法を紹介しました。そして、IDE の「サービス」ウィンドウからデータベースエクスプローラを使用して、表を作成、表示、変更、および削除する方法を紹介しました。SQL エディタを操作して表にデータを追加する方法や、ほかのデータベースの定義を使用して表を再作成する IDE の機能の使用方法も示しました。

関連するチュートリアルおよびさらに高度なチュートリアルについては、次のリソースを参照してください。