この Web ページでは,Eclipse のデータツール・プラットホーム (DTP) の操作法を説明する.
Eclipse のデータツール・プラットホーム (DTP) とは, リレーショナルデータベースの操作と管理の機能を持ったソフトウエア.
この Web ページでは,リレーショナルデータベース管理システムとして,Java DB (Derby) を使う. (PostgreSQL,MySQL など,他のリレーショナルデータベース管理システムについては,別のページで説明している.).
参考 Web ページ
DTP の Web ページ:http://www.eclipse.org/datatools/
前準備として,DTP のインストールが必要かも知れません.
Eclipse のインストール 時に JEE パッケージを選んだのなら, JEE パッケージに DTP が同梱されているので,改めてインストールする必要はありません.
JEE パッケージ以外を選んだのなら, Eclipse のデータツール・プラットホーム (DTP) のインストールの Web ページなどを参考にして, インストールを行ってください.
データベース名と,Java DB データベースディレクトリ(相対)を決めておくこと. この Web ページでは,次のように書く.
使用するデータベースの名前のことを,「データベース名」と呼ぶことにする. データベース名は,自由に決めてよいが,半角文字(つまり英字と英記号)を使い,スペースを含まないこと, すでに存在するデータベースを使ってもいい(つまり,既存のデータベースのデータベース名を使う)し,新しいデータベースを作ることにしてもいいです. (新しいデータベースは,JDBC の機能などを使って自動的に簡単にできるので,このことであまり悩まないこと).
Java DB のデータベースファイルが置かれるディレクトリのことです. これは自由に決めてよいが,半角文字(つまり英字と英記号)を使い,スペースを含まないこと, データベース名と Java DB データベースディレクトリとは別ものです.混同しないこと.
なお,Java DB データベースディレクトリは,「dbdir」 のように,相対パス形式で書く場合と,「C:\hoge\dbdir」のように,絶対パス形式で書く場合があります. 今回は,相対パス形式で書く.
前もって,Eclipse インストールディレクトリを調べておいてください この Web ページでは,次のように書く.
Java DB を使うために,次の設定を行うことになるので,確認しておく.
データベース・ロケーションとは, データベースファイルが置かれる実際のディレクトリのことです.
Java DB データベースディレクトリを,「dbdir」のような相対パス形式にする場合, データベース・ロケーションは,Eclipse インストールディレクトリである C:\Program Files\eclipse3.5\eclipse のサブディレクトリになる. (一方で,絶対パス形式の場合は,データベース・ロケーションは,Eclipse インストールディレクトリと無関係になります). このデータベース・ロケーションは, Eclipse インストールディレクトリと,Java DB データベースディレクトリ(相対パス形式)を連結したものになる.
リレーショナルデータベースとして Java DB を使うので,データベースURL(接続文字列)は, jdbc:derby:に,データベースディレクトリ(相対)を付けて, jdbc:derby:dbdirになる.
Java DB (Derby) なので,この JDBC ドライバを使うことになる.
Java DB (Derby) インストールのときに,Eclipse プラグインもインストールしますが,その中に Java DB 用 JDBC の jar ファイルが含まれています.動作にトラブルがあったときに,jar ファイルが置いてあるディレクトリがどこかの情報が必要になることがあります.
【要点】JDBC ドライバー定義を行う.接続URLを設定するときに,「;create=true」を付け,データベースを自動生成するように設定します.
「ウインドウ (Window)」-> 「設定 (Preferences)」-> 「データ管理」を展開-> 「接続 (Connectivity)」を展開,という手順で操作する.
「接続」の下の「ドライバー定義」をクリックする.
「ドライバー定義のウインドウ」が開く. 「Derby 組み込み JDBC ドライバー 10.2 デフォルト」などが並んでいることを確認.(並んでいなければ,Java DB (Derby) インストールをやり直す).
右の方にある「追加 (Add)」をクリック.
「新規ドライバー定義 (New Driver Definition) のウインドウ」が開くので, 「Derby 10.0 用 Derby 組み込み JDBC ドライバー Derby 10.2」をクリック.
まだ,設定があるので,「OK」を押さないこと.
「プロパティー」タブをクリックした後, 次のように設定する.
デフォルトでは,接続 URL は, jdbc:derby:C:\DerbyDatabases\MyDB;create=true のようになっている. これは, Java DB データベースディレクトリを,「dbdir」のような相対パス形式ではなくて, 「C:\DerbyDatabases\MyDB」のような絶対パス形式にしているということ.
以上の設定が終わったら,「OK」をクリックするこれで,Java DB (Derby) を使うためのドライバー定義が終わった.
「Derby 10.0 用 Derby 組み込み JDBC ドライバー」 というような名前が付いた行が増えているので確認しておく.
Java DB (Derby) への「接続」の設定を行う前に,上記の「Java DB ドライバー定義」が終わっていること.
「ウインドウ (Window)」-> 「パースペクティブを開く (Perspective)」-> 「その他」-> 「データベース開発 (Database Development)」と操作し, 「OK」をクリック.
「接続プロファイルのウインドウ」が開くので, 「接続のテスト」をクリックする.
確認したら「OK」をクリック.
「次へ」をクリック. 新規接続プロファイルの要約が表示されるので確認. 「終了」をクリックし,新規接続の設定を終える.
データ・ソース・エクスプローラ (Data Source Explorer) に,いま設定した「接続」が表示されるので確認する.
これで,Java DB (Derby) への「接続」の設定が終わった.
「ウインドウ (Window)」-> 「パースペクティブを開く (Perspective)」-> 「その他」-> 「データベース開発 (Database Development)」と操作し, 「OK」をクリック.
データ・ソース・エクスプローラ (Data Source Explorer) で, 先ほど作った「接続」である「新規 Derby」を右クリック. 「接続」を選ぶ.
※ 「接続」が薄い文字になって選べないときは,「すでに接続済み」という意味なので,気にせずに次に進む.
「 APP」の下の「テーブル」を右クリック. 「新規テーブル (New Table)」を選ぶ.
例えば
のように.
テーブル名は,デフォルト値は「new_table」になっている.変えておく.
一意の値をとる(行が違えば,値が違う)属性で,かつ NULL になることがないものを主キーとして設定します.設定が終わったら「終了」をクリック.
(参考)日本語のテーブル名,列名を持つテーブル
Java DB で,日本語のテーブル名,列名を持つテーブルを定義できるか試してみました.テーブル名,列名に制限がありますが,出来るようです.
SQL スクラップブックを使い,SQL の編集と実行ができる.
「ウインドウ (Window)」-> 「パースペクティブを開く (Perspective)」-> 「その他」-> 「データベース開発 (Database Development)」と操作し, 「OK」をクリック.
データ・ソース・エクスプローラ (Data Source Explorer) で, 先ほど作った「接続」である「新規 Derby」を右クリック. 「接続」を選ぶ.
※ 「接続」が薄い文字になって選べないときは,「すでに接続済み」という意味なので,気にせずに次に進む.
分かりにくいですが,Eclipse の上部に並んでいるたくさんのボタンのうち, 左から4番目の青色のボタンが「SQL スクラップブック」を開くためのボタンです.
ここでは,SQL の編集と実行の練習用に,SQL の見本をいくつか示している.下記をカットアンドペーストして,練習に使ってください.
----------------------ここから---------------------
create table commodity (
type INTEGER primary key not null,
name VARCHAR(32) not null,
price INTEGER );
insert into commodity values( 1, 'apple', 50 );
insert into commodity values( 2, 'orange', 20 );
insert into commodity values( 3, 'strawberry', 100 );
insert into commodity values( 4, 'watermelon', 150 );
insert into commodity values( 5, 'melon', 200 );
insert into commodity values( 6, 'banana', 100 );
----------------------ここまで----------------------
commodity テーブルに対する SQL の例
----------------------ここから--------------------- select * from commodity; ----------------------ここまで----------------------
期待される結果
TYPE NAME PRICE
---- ---------- -----
1 apple 50
2 orange 20
3 strawberry 100
4 watermelon 150
5 melon 200
6 banana 100
見本2.科目テーブル,学生テーブル,履修登録テーブル
今度の見本(見本2)では,日本語のテーブル名,日本語の列名を試します.
※ テーブル名に日本語を使っていますが、特に問題ありませんでした.(とはいっても、「①」や「〜」などを使うのは避けておきましょう).
----------------------ここから---------------------
create table 科目 (
科目番号 integer not null,
科目名 varchar(100) not null,
単位数 integer not null,
担当教員名 varchar(100) not null,
primary key (科目番号)
);
create table 学生 (
学生番号 integer not null,
氏名 varchar(100) not null,
primary key (学生番号)
);
create table 履修登録 (
科目番号 integer not null,
学生番号 integer not null,
primary key (科目番号,学生番号),
foreign key (科目番号) references 科目(科目番号),
foreign key (学生番号) references 学生(学生番号)
);
insert into 科目 values ( 1001, 'データベース', 2, 'X' );
insert into 科目 values ( 1002, 'プログラミング', 2, 'Y' );
insert into 学生 values ( 2008001, 'AA AAA' );
insert into 学生 values ( 2008002, 'BB BBBB' );
insert into 履修登録 values ( 1001, 2008001 );
insert into 履修登録 values ( 1001, 2008002 );
insert into 履修登録 values ( 1002, 2008002 );
----------------------ここまで----------------------
科目テーブル,履修登録テーブルに対する SQL の例
※ データベースの中身に日本語が含まれていますが、特に問題ありませんでした.
----------------------ここから--------------------- select 科目.科目番号, 科目.科目名 from 科目, 履修登録 where 履修登録.学生番号 = 2008001 AND 履修登録.科目番号 = 科目.科目番号; ----------------------ここまで----------------------
データとして「①」や「〜」を扱う例
※ 特に問題ありませんでした.
----------------------ここから--------------------- insert into 科目 values ( 1003, 'プログラミング演習Ⅲ①〜②', 2, 'X' ); ----------------------ここまで----------------------
SQL 実行結果が表示されているウインドウで右クリックすることで, 実行結果を,簡単にファイルに保存できる.
テーブルの中身を簡単に見ることができ, データの更新や,行の追加,削除も簡単に行えるツール. SQL を使わずに簡単にできる.
上記の「Java DB (Derby) への『接続』の設定」が終わっていること.
「ウインドウ (Window)」-> 「パースペクティブを開く (Perspective)」-> 「その他」-> 「データベース開発 (Database Development)」と操作し, 「OK」をクリック.
データ・ソース・エクスプローラ (Data Source Explorer) で, 先ほど作った「接続」である「新規 Derby」を右クリック. 「接続」を選ぶ.
※ 「接続」が薄い文字になって選べないときは,「すでに接続済み」という意味なので,気にせずに次に進む.
展開の結果,テーブル名の一覧が表示される.
CSV 形式のファイルなどと,テーブルの中身をインポート・エクスポートすることも 簡単に行えます.
閲覧,編集したいテーブル名を右クリック. 「データ」-> 「ロード」でインポート. 「データ」-> 「抽出」でエクスポート.
本サイトは金子邦彦研究室のWebページです.サイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.
問い合わせ先: 金子邦彦(かねこ くにひこ) ![]()