Eclipse のデータツール・プラットホーム (DTP) とは, リレーショナルデータベースの操作と管理の機能を持ったソフトウエア.
この Web ページでは,Eclipse のデータツール・プラットホーム (DTP) の操作法を説明する.
この Web ページでは,リレーショナルデータベース管理システムとして,MySQL を使う. (PostgreSQL, Java DB (Derby) など,他のリレーショナルデータベース管理システムについては,別のページで説明している.).
この Web ページでは,バージョン 5.1 で日本語のテーブル名,列名を扱えるということも試している.
参考 Web ページ
DTP の Web ページ:http://www.eclipse.org/datatools/
MySQL は,XAMPP を使ってインストールする方法やMySQL 単体でインストールする方法があります.
JDBC で MySQL を使うために必要になるので, http://dev.mysql.com/downloads/connector/ から Connector/J をダウンロードして,解凍しておく.
ダウンロードの手順は, 「MySQL コネクタ (Connector) Java のダウンロード」の Web ページで説明している.
前準備として,DTP のインストールが必要かも知れません.
Eclipse のインストール 時に JEE パッケージを選んだのなら, JEE パッケージに DTP が同梱されているので,改めてインストールする必要はありません.
JEE パッケージ以外を選んだのなら, Eclipse のデータツール・プラットホーム (DTP) のインストールの Web ページなどを参考にして, インストールを行ってください.
データベース名と,MySQL にログインするために使うデータベース・一般ユーザのアカウント(ユーザ名とパスワード)を, この Web ページでは,次のように書く.
使用するデータベースの名前のことを,「データベース名」と呼ぶことにする. データベース名は,自由に決めてよいが,半角文字(つまり英字と英記号)を使い,スペースを含まないこと, すでに存在するデータベースを使ってもいい(つまり,既存のデータベースのデータベース名を使う)し,新しいデータベースを作ることにしてもいいです.
データベース名 testdb の権限を持ったユーザにして下さい.(そうで無いとエラーが出ます).
この Web ページの手順を試すために,新しいデータベースと,新しい一般ユーザのアカウントを作りたいという場合は, MySQL コマンドライン・クライアント や MySQL GUI Tools などを使い,次のコマンドを実行してください.
■ キャラクタセットとして cp932 を使う倍
create database 'testdb' default character set cp932 collate cp932_japanese_ci; create user testuser identified by 'hoge$#34hoge5'; grant all on testdb.* to 'testuser';
■ キャラクタセットとして utf8 を使う倍
create database 'testdb' default character set utf8 collate utf8_unicode_ci; create user testuser identified by 'hoge$#34hoge5'; grant all on testdb.* to 'testuser';
パスワードは,説明を簡単にするために hoge$#34hoge5 と書いているが,実際には,これとは違うものを,必ず適切に設定してください.
※ MySQL コマンドライン・クライアント や MySQL GUI Tools などのツールの操作法(起動法,ログインの方法など)は,MySQL コマンドライン・クライアント や MySQL GUI Tools の Web ページを見てください.
設定に必要になるので,前もって,Eclipse インストールディレクトリと, MySQL のバージョンと, MySQL コネクタ (Connecor) Java のディレクトリを を調べておいてください この Web ページでは,次のように書く.
※ MySQL のバージョンは,MySQL コマンドライン・クライアント を起動すると表示されますので簡単に分かります.
MySQL コネクタ (Connector) Java のダウンロードのときに作られたディレクトリのことです.
MySQL を使うために,次の設定を行うことになるので,確認しておく.
リレーショナルデータベースとして MySQL を使うので,データベースURL(接続文字列)は, jdbc:mysql:に,データベース名などを付けて, jdbc:mysql://localhost:3306/testdbになる.
localhost は,リモートでなく,ローカルの MySQL を使うという意味.3306 は,MySQL のデフォルトのポート番号.
MySQL なので,この JDBC ドライバを使うことになる.
MySQL コネクタ (Connecor) Java のディレクトリ C:\Program Files\Java\mysql-connector-java-5.1.8 に,MySQL 用 JDBC の jar ファイルがあります.
データツール・プラットホーム (DTP) が持つ以下の機能を説明する.
※ DTP のバージョンが古いと,他のプラグインとの相性だと思うのですが,DTP がうまく動かないという場合がありました.その場合は, 「Eclipse でインストール済みのフィーチャの更新」 のWeb ページを参考にして,DTP の更新を行ってみてください.
【要点】Eclipse で JDBC ドライバー定義を行う.
「ウインドウ (Window)」-> 「設定 (Preferences)」-> 「データ管理」を展開-> 「接続 (Connectivity)」を展開,という手順で操作する.
「接続」の下の「ドライバー定義」をクリックする
「ドライバー定義のウインドウ」が開く.右の方にある「追加 (Add)」をクリック.
「新規ドライバー定義 (New Driver Definition) のウインドウ」が開くので, 「MySQL JDBC ドライバー」の中の適切なバージョンのものをクリック.
例えば,MySQL のバージョンが,5.1 の時には,次のようになる.
まだ,設定があるので,「OK」を押さないこと.
このファイルは, MySQL コネクタ (Connecor) Java のディレクトリである C:\Program Files\Java\mysql-connector-java-5.1.8 にあります.
まず,「mysql-connector-java-5.1.0-bin.jar」をクリックして, 「JAR/Zip の除去」をクリックする.
「プロパティー」をクリックした後, 次のように設定する.
以上の設定が終わったら,「OK」をクリックする. これで,MySQL を使うためのドライバー定義が終わった.
「MySQL JDBC ドライバー」 というような名前が付いた行が増えているので確認しておく.
「ウインドウ (Window)」-> 「パースペクティブを開く (Perspective)」-> 「その他」-> 「データベース開発 (Database Development)」と操作し, 「OK」をクリック.
「接続プロファイルのウインドウ」が開くので, 「接続のテスト」をクリックする.
確認したら「OK」をクリック.
【エラーが出たときのヒント】
一般ユーザ testuser には, データベース名 testdb のデータベースを扱う権限が無いのでは? データベースの権限を設定してから,やり直してください.
「次へ」をクリック. 新規接続プロファイルの要約が表示されるので確認. 「終了」をクリックし,新規接続の設定を終える.
データ・ソース・エクスプローラ (Data Source Explorer) に,いま設定した「接続」が表示されるので確認する.
これで,MySQL への「接続」の設定が終わった.
「ウインドウ (Window)」-> 「パースペクティブを開く (Perspective)」-> 「その他」-> 「データベース開発 (Database Development)」と操作し, 「OK」をクリック.
データ・ソース・エクスプローラ (Data Source Explorer) で, 先ほど作った「接続」である「新規 MySQL」を右クリック. 「接続」を選ぶ.
※ 「接続」が薄い文字になって選べないときは,「すでに接続済み」という意味なので,気にせずに次に進む.
「testdb」の下の「テーブル」を右クリック. 「新規テーブル (New Table)」を選ぶ.
例えば
のように.
テーブル名は,デフォルト値は「new_table」になっている.変えておく.
一意の値をとる(行が違えば,値が違う)属性で,かつ NULL になることがないものを主キーとして設定します.設定が終わったら「終了」をクリック.
※ 現れないときは,「テーブルの生成」に失敗したことを疑って下さい.
「SQL の結果」ウインドウで「失敗」(つまりエラーメッセージ)が無いかを確認すること. (つまり,自動生成された SQL プログラムにエラーがあることを疑って下さい.対処は簡単にできると思います).
「成功」しているときは,「切断」と「接続」をやり直すと,うまく表示されるかも知れません.
既定(デフォルト)のキャラクタセットとして, cp932やutf8 などを以下の手順で設定しておくこと. 設定をしなくても「何となく」動くことが多いですが,文字化けなどのトラブルの可能性が増える.
C:\Program Files\MySQL\MySQL Server 5.1\my.ini (XAMPP の場合は C:\xampp\mysql\bin\my.ini) をエディタで書き換える
MySQL バージョン 5.1 以上での設定手順である バージョン 5.0 では、my.cnf のようなファイル名になっていたのですが、変わりました.設定の中身も違う.
XAMPP を使って MySQL をインストールしたので,my.ini の場所は c:\xampp\mysql\bin\my.ini のようになっている.
■ 文字コードをcp932にしたい場合には,次のように my.ini を書きかえる.
■ 文字コードをutf8にしたい場合には,次のように my.ini を書きかえる.
MySQL で,日本語のテーブル名,列名を持つテーブルを定義できるか試してみました.(簡単なものしか試してみませんが)出来るようです. ここで示す実例は cp932 に設定した場合です.
SQL スクラップブックを使い,SQL の編集と実行ができる.
「ウインドウ (Window)」-> 「パースペクティブを開く (Perspective)」-> 「その他」-> 「データベース開発 (Database Development)」と操作し, 「OK」をクリック.
データ・ソース・エクスプローラ (Data Source Explorer) で, 先ほど作った「接続」である「新規 MySQL」を右クリック. 「接続」を選ぶ.
※ 「接続」が薄い文字になって選べないときは,「すでに接続済み」という意味なので,気にせずに次に進む.
分かりにくいですが,Eclipse の上部に並んでいるたくさんのボタンのうち, 左から4番目の青色のボタンが「SQL スクラップブック」を開くためのボタンです.
ここでは,SQL の編集と実行の練習用に,SQL の見本をいくつか示している.下記をカットアンドペーストして,練習に使ってください.
commodity テーブルのテーブル定義
----------------------ここから---------------------
create table commodity (
type INTEGER primary key not null,
name VARCHAR(32) not null,
price INTEGER );
----------------------ここから---------------------
commodity テーブルへの列の挿入
----------------------ここから--------------------- 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)では,日本語のテーブル名,日本語の列名を試します.
※ テーブル名に日本語を使っていますが,特に問題ありませんでした.
科目テーブルのテーブル定義
----------------------ここから---------------------
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 を使わずに簡単にできる.
上記の「MySQL への『接続』の設定」が終わっていること.
「ウインドウ (Window)」-> 「パースペクティブを開く (Perspective)」-> 「その他」-> 「データベース開発 (Database Development)」と操作し, 「OK」をクリック.
データ・ソース・エクスプローラ (Data Source Explorer) で, 先ほど作った「接続」である「新規 MySQL」を右クリック. 「接続」を選ぶ.
※ 「接続」が薄い文字になって選べないときは,「すでに接続済み」という意味なので,気にせずに次に進む.
展開の結果,テーブル名の一覧が表示される.
CSV 形式のファイルなどと,テーブルの中身をインポート・エクスポートすることも 簡単に行えます.
閲覧,編集したいテーブル名を右クリック. 「データ」-> 「ロード」でインポート. 「データ」-> 「抽出」でエクスポート.
本サイトは金子邦彦研究室のWebページです.サイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.
問い合わせ先: 金子邦彦(かねこ くにひこ) ![]()