Netbeansによるデータベース操作

参考サイト

ここでは、Netbeansでデータベースを直接扱う方法について説明します。

1.Netbeansにデータベースを登録する

まず自分で扱うデータベースをNetbeansに登録する必要があります。Netbeansには標準でDerbyというデータベースが内蔵されています。

【Derbyの場合】

デフォルトで登録されているのでここは無視してください。以下の2のデータベースの作成に進んでください。

【外部DBを利用する場合】

外部のデータベースサーバ(PostgreSQL/MySQL 等)を利用する場合です

  • アクセスURL(アドレスとポート番号)
  • ユーザ名、パスワード

事前にデータベース管理者から確認する。データベースが指定されている場合はデータベース名も確認すること。

2.Netbeansからデータベースを作成する

どのようなテーブル構造のデータベースを用意するのか、事前に設計しておくことが大切です。

    1. [サービス]タブを選択します
    2. データベースの中にJavaDBというのがあります。これは、Netbeansが持っているデータベース(Derby)です。
    3. JavaDBの上で、右クリックし、データベース作成を選択します
    4. データベース名、ユーザ名、パスワードを入力し、OKを押します。
    5. 重要!Derbyを用いる場合、ユーザ名とパスワードはいずれも APP としてください
    6. これで、Derby上にデータベースが作成されます。

テーブルを作成する

テーブル作成には、「GUIを利用する方法」、「DDL(Data Definition Language)を記述する方法」

)」の2種類があります。前者のほうが簡単ですが、細かな設定をする際には後者が便利です。

【GUIを利用する方法】

    1. データベースのしたほうに、いくつか"jdbc:derby//----"で始まるリストがあります。その中で自分が作成した名前があるのを選びます。
    2. 右クリックで接続を選択し実行します。
    3. 実行されると、デフォルトでシステムが持っているデータベースのテーブルが表示されます。
    4. その中でAPPというのを選び、表を選択します。
    5. (DerbyではAPPがデフォルトスキーマーになるようです)
    6. そこに自分が作るテーブルが入ります。まだ何もない状態なので表を右クリックし、表を作成を選びます。
    7. 表名ならびに、データベースのカラム(列)を入力していきます。

サンプルとして、次のようなテーブルを作成してみましょう。

注意事項

    • varchar型は必ずサイズを設定してください。
    • 作成時にエラーが出る場合、可能性としてテーブル名やカラム名に問題があるかもしれません。データベースには固有の名詞を定義している場合があります。たとえば、"user"というテーブルは作成できませんでした。

【DDLを記述する方法】

データベースの「表」を右クリックして「コマンドを実行」を選択し、SQLコマンドでテーブルを作成する。

(DDLの例)

下記の例では、2つのテーブル(Entry、Jpn)を作成しています。また、entry.id とJpn.entry_idに対してリレーションを設定しています。なお下記の記述は、データベースとしてPostgreSQLを対象としていますので、注意してください。

create table Entry(
  id int primary key
);
create table Jpn(
  id serial primary key,
  content varchar not null,
  entry_id int not null,
 
  constraint Jpn_fkey foreign key ( entry_id ) references Entry( id )
);

データを入力してみる

データベースへの操作は基本はSQLを用いますが、この環境でGUI操作できます。

データの追加

    1. データをいれるテーブルの上で右クリックし、【データの表示】を選択
    2. 下段のテーブルの上で右クリックし、レコードを挿入
    3. 各カラムをクリックすることで、データを直接入力できます。
    4. 次の行を追加するときは、【行を追加】ボタンを選択してください。
    5. データを入力し終わったら、完了を押してください

なお、SQLを表示ボタンを押すと、手作業でいれた操作をSQLでどう表現するのかわかりますので参考にしてみるのもいいでしょう。