トップページ -> 研究道具箱と教材 -> Apache, MySQL, PHP, phpMyAdmin のインストールと各種ツールの使用法 -> MySQL 上で,Eclipse のデータツール・プラットホーム (DTP) を使う
[サイトマップへ]  

MySQL 上で,Eclipse のデータツール・プラットホーム (DTP) を使う

Eclipse のデータツール・プラットホーム (DTP) とは, リレーショナルデータベースの操作と管理の機能を持ったソフトウエアです.

この Web ページでは,Eclipse のデータツール・プラットホーム (DTP) の操作法を説明します.

この Web ページでは,リレーショナルデータベース管理システムとして,MySQL を使います. (PostgreSQLJava DB (Derby) など,他のリレーショナルデータベース管理システムについては,別の Web ページで説明しています).

この Web ページでは,バージョン 5.1 で日本語のテーブル名,列名を扱えるということも試しています.

参考 Web ページ

DTP の Web ページ:http://www.eclipse.org/datatools/


必要となるソフトウエア

あらかじめ決めておく事項

データベース論理名と,MySQL にログインするために使うデータベース・一般ユーザのアカウント(ユーザ名とパスワード)を, この Web ページでは,次のように書きます.

この 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 を使うために,次の設定を行うことになるので,確認しておく.


データツール・プラットホーム (DTP) の機能

データツール・プラットホーム (DTP) が持つ以下の機能を説明します.

DTP のバージョンが古いと,他のプラグインとの相性だと思うのですが,DTP がうまく動かないという場合がありました.その場合は, 「Eclipse でインストール済みのフィーチャの更新」 のWeb ページを参考にして,DTP の更新を行ってみてください.


Eclipse での MySQL ドライバー定義

【要点】Eclipse で JDBC ドライバー定義を行います.

  1. 設定項目の展開

    ウインドウ (Window)」-> 「設定 (Preferences)」-> 「データ管理」を展開-> 「接続 (Connectivity)」を展開,という手順で操作する.

  2. ドライバーの追加の開始

    「接続」の下の「ドライバー定義」をクリックする

  3. ドライバーの追加

    「ドライバー定義のウインドウ」が開く.右の方にある「追加 (Add)」をクリック.

  4. ドライバー・テンプレートの選択

    「新規ドライバー定義 (New Driver Definition) のウインドウ」が開くので, 「MySQL JDBC ドライバー」の中の適切なバージョンのものをクリック.

    例えば,MySQL のバージョンが,5.1 の時には,次のようになります.

    まだ,設定があるので,「OK」を押さないこと.

  5. Jar リストの設定
    1. Jar リスト」をクリックした後,右側の「JAR/ZIP の追加」をクリック

    2. MySQL 用 JDBC の jar ファイル mysql-connector-java-5.1.8-bin.jar を設定する.

      このファイルは, MySQL コネクタ (Connecor) Java のディレクトリである C:\Program Files\Java\mysql-connector-java-5.1.8 にあります.

    3. 古い設定「mysql-connector-java-5.1.0-bin.jar」を消去する.

      まず,「mysql-connector-java-5.1.0-bin.jar」をクリックして, 「JAR/Zip の除去」をクリックする.

  6. プロパティーの設定

    プロパティー」をクリックした後, 次のように設定する.

    以上の設定が終わったら,「OK」をクリックする. これで,MySQL を使うためのドライバー定義が終わった.

  7. 設定の確認

    MySQL JDBC ドライバー」 というような名前が付いた行が増えているので確認しておく.


MySQL への「接続」の設定

  1. (前準備) MySQL への「接続」の設定を行う前に,上記の「MySQL ドライバー定義」が終わっていること.

  2. データ・ソース・エクスプローラーを開く.

    ウインドウ (Window)」-> 「パースペクティブを開く (Perspective)」-> 「その他」-> 「データベース開発 (Database Development)」と操作し, 「OK」をクリック.

  3. データ・ソース・エクスプローラ (Data Source Explorer) が,左側に開くので, 「データベース接続」を右クリックし, 「新規 (New)」を選ぶ.

  4. 「新規接続プロファイル (connection profile) のウインドウ」が開くので, 「MySQL」を選び, 「次へ (Next)」をクリック.

  5. 接続のテスト

    「接続プロファイルのウインドウ」が開くので, 「接続のテスト」をクリックする.

  6. 「ping が正常に終了しました」 と表示されることを確認

    確認したら「OK」をクリック.

    エラーが出たときのヒント

  7. 新規接続プロファイルの要約が表示されるので確認

    次へ」をクリック. 新規接続プロファイルの要約が表示されるので確認. 「終了」をクリックし,新規接続の設定を終える.

  8. データ・ソース・エクスプローラでの確認

    データ・ソース・エクスプローラ (Data Source Explorer) に,いま設定した「接続」が表示されるので確認する.

これで,MySQL への「接続」の設定が終わった.


 

テーブル定義 (専用ツール)

  1. (前準備) 上記の「MySQL への『接続』の設定」が終わっていること.

  2. (前準備) データ・ソース・エクスプローラ (Data Source Explorer) が,開いていなければ,下記の手順で開く.

    ウインドウ (Window)」-> 「パースペクティブを開く (Perspective)」-> 「その他」-> 「データベース開発 (Database Development)」と操作し, 「OK」をクリック.

  3. 接続

    データ・ソース・エクスプローラ (Data Source Explorer) で, 先ほど作った「接続」である「新規 MySQL」を右クリック. 「接続」を選ぶ.

    ※ 「接続」が薄い文字になって選べないときは,「すでに接続済み」という意味なので,気にせずに次に進む.

  4. 新規 MySQL (MySQL v ...)」のにある データベース論理名「testdb」を展開(左横の「+」をクリック).

  5. testdb」の下の「スキーマ」を展開(左横の「+」をクリック).

  6. スキーマ」の下の「testdb」を展開(左横の「+」をクリック).

  7. ツールの起動

    testdb」の下の「テーブル」を右クリック. 「新規テーブル (New Table)」を選ぶ.

  8. 「オプションのウインドウ」は,何もせず,「次へ」をクリック.

  9. 「列のウインドウ」が現れたら,まず「列追加 (Add Column)」をクリック

  10. 1列追加されるので,下の方の 「列詳細」で,「名前」と「データ型」と「長さ」と「NULL 可能」と「デフォルト値」を設定.

    例えば

    のように.

  11. 「列のウインドウ」では,「テーブル名」の記述も行っておくこと.

    テーブル名は,デフォルト値は「new_table」になっている.変えておく.

  12. 列の追加とテーブル名の設定が終わったら,「次へ」をクリック

  13. 主キーの設定

    一意の値をとる(行が違えば,値が違う)属性で,かつ NULL になることがないものを主キーとして設定します.設定が終わったら「終了」をクリック.

  14. すると,SQL ステートメント・エディタが開き,この中に,自動生成された SQL プログラム が書かれています.

  15. まだ,テーブルはできていません. SQL ステートメント・エディタ内の任意の場所で右クリックして「すべて実行」を選んで下さい. これによって,SQL が実行されて,テーブルが生成されます.

  16. 確認のため, データ・ソース・エクスプローラ (Data Source Explorer) で,右クリックして「リフレッシュ」を実行してください.新しく生成したテーブルが現れます.

    ※ 現れないときは,「テーブルの生成」に失敗したことを疑って下さい.

    「SQL の結果」ウインドウで「失敗」(つまりエラーメッセージ)が無いかを確認してください. (つまり,自動生成された SQL プログラムにエラーがあることを疑って下さい.対処は簡単にできると思います).

    「成功」しているときは,「切断」と「接続」をやり直すと,うまく表示されるかも知れません.


(参考)テーブル定義 (専用ツール) ・・・ 日本語のテーブル名,列名を持つテーブルの場合

前提事項と前準備

既定(デフォルト)のキャラクタセットとして, cp932utf8 などを以下の手順で設定しておくこと. 設定をしなくても「何となく」動くことが多いですが,文字化けなどのトラブルの可能性が増えます.

C:\Program Files\MySQL\MySQL Server 5.1\my.ini (XAMPP の場合は C:\xampp\mysql\bin\my.ini) をエディタで書き換える

MySQL バージョン 5.1 以上での設定手順です バージョン 5.0 では、my.cnf のようなファイル名になっていたのですが、変わりました.設定の中身も違います.

  1. 「my.ini」をエディタで開く

    XAMPP を使って MySQL をインストールしたので,my.ini の場所は c:\xampp\mysql\bin\my.ini のようになっている.

  2. 次の3箇所を追加する

    文字コードcp932にしたい場合には,次のように my.ini を書きかえる.

    1. [mysqld]部分

    2. [mysqldump]部分

    3. [mysql]部分

    文字コードutf8にしたい場合には,次のように my.ini を書きかえる.

    1. [mysqld]部分

    2. [mysqldump]部分

    3. [mysql]部分

  3. 書き換えた後は,MySQL サーバを再起動

  4. status コマンドを使い,キャラクタセット(character set) の設定が「cp932」になっていることを確認.

cp932 での動作確認例

MySQL で,日本語のテーブル名,列名を持つテーブルを定義できるか試してみました.(簡単なものしか試してみませんが)出来るようです. ここで示す実例は cp932 に設定した場合です.


図.テーブル名「商品」,列名「商品番号」,「商品名」としてテーブルを定義しているところ


図.確認のため,データ・ツール・プラットフォームの SQL スクラップブックで,上記のテーブルを,使ってみているところ(うまく動いているようです).

図.テーブル名や列名に「〜」,「@」などの文字を含めた場合.(MySQL 5.1 を使っています.MySQL 5.0 ではうまくいかないので注意してください).


図.確認のため,データ・ツール・プラットフォームの SQL スクラップブックで,上記のテーブルを,使ってみているところ(うまく動いているようです).

 

SQL 編集と実行,SQL 実行結果のファイル出力

SQL スクラップブックを使い,SQL の編集と実行ができます.

  1. (前準備) 上記の「MySQL への『接続』の設定」が終わっていること.

  2. (前準備) データ・ソース・エクスプローラ (Data Source Explorer) が,開いていなければ,下記の手順で開く.

    ウインドウ (Window)」-> 「パースペクティブを開く (Perspective)」-> 「その他」-> 「データベース開発 (Database Development)」と操作し, 「OK」をクリック.

  3. 接続

    データ・ソース・エクスプローラ (Data Source Explorer) で, 先ほど作った「接続」である「新規 MySQL」を右クリック. 「接続」を選ぶ.

    ※ 「接続」が薄い文字になって選べないときは,「すでに接続済み」という意味なので,気にせずに次に進む.

  4. SQL スクラップブックを開く

    分かりにくいですが,Eclipse の上部に並んでいるたくさんのボタンのうち, 左から4番目の青色のボタンが「SQL スクラップブック」を開くためのボタンです.

  5. SQL の編集と実行

    ここでは,SQL の編集と実行の練習用に,SQL の見本をいくつか示しています.下記をカットアンドペーストして,練習に使ってください.

    見本1.commodity テーブル

    commodity テーブルのテーブル定義

    ----------------------ここから---------------------
    CREATE TABLE commodity (
        type INTEGER primary key not null,
        name VARCHAR(32) not null,
        price INTEGER );
    ----------------------ここから---------------------
    


    図.commodity テーブルのテーブル定義


    図.上記の実行結果

    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 テーブルへの列の挿入


    図.上記の実行結果

    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
    


    図.commodity テーブルに対する SQL の例


    図.上記の実行結果

    見本2.科目テーブル,学生テーブル,履修登録テーブル

    今度の見本(見本2)では,日本語のテーブル名,日本語の列名を試します.

    ※ テーブル名に日本語を使っていますが,特に問題ありませんでした.


    図.科目テーブル,学生テーブル,履修登録テーブルの関係を示す図(図は,Eclipse の Clay プラグインを用いて作成)

    科目テーブルのテーブル定義

    ----------------------ここから---------------------
    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 履修登録.科目番号 = 科目.科目番号;
    ----------------------ここまで----------------------
    


    図.科目テーブル,履修登録テーブルに対する SQL の例


    図.上記の実行結果

    データとして「@」や「〜」を扱う例

    ※ 特に問題ありませんでした.

    ----------------------ここから---------------------
    insert into 科目 values ( 1003, 'プログラミング演習V@〜A', 2, 'X' );
    ----------------------ここまで----------------------
    


    図.データとして「@」や「〜」を扱う例


    図.上記の実行結果


    図.確認のため,科目テーブルの中身を表示した結果

  6. SQL 実行結果の保存

    SQL 実行結果が表示されているウインドウで右クリックすることで, 実行結果を,簡単にファイルに保存できます.


 

テーブルの一覧表示と中身の表示と更新(行の追加,行の削除,更新)

テーブルの中身を簡単に見ることができ, データの更新や,行の追加,削除も簡単に行えるツールです. SQL を使わずに簡単にできます.

上記の「MySQL への『接続』の設定」が終わっていること.

  1. (前準備) 上記の「MySQL への『接続』の設定」が終わっていること.

  2. (前準備) データ・ソース・エクスプローラ (Data Source Explorer) が,開いていなければ,下記の手順で開く.

    ウインドウ (Window)」-> 「パースペクティブを開く (Perspective)」-> 「その他」-> 「データベース開発 (Database Development)」と操作し, 「OK」をクリック.

  3. 接続

    データ・ソース・エクスプローラ (Data Source Explorer) で, 先ほど作った「接続」である「新規 MySQL」を右クリック. 「接続」を選ぶ.

    ※ 「接続」が薄い文字になって選べないときは,「すでに接続済み」という意味なので,気にせずに次に進む.

  4. 新規 MySQL (MySQL v ...)」のにある データベース論理名「testdb」を展開(左横の「+」をクリック).

  5. testdb」の下の「スキーマ」を展開(左横の「+」をクリック).

  6. スキーマ」の下の「testdb」を展開(左横の「+」をクリック).

  7. testdb」の下の「テーブル」を展開(左横の「+」をクリック).

    展開の結果,テーブル名の一覧が表示される.

  8. 扱いたいテーブル(ここでは「COMMODITY」を右クリック.「データ」→「編集」と操作する.

  9. テーブル編集用のウインドウが開く. これで,更新,行の挿入,行の削除が簡単にできる. 更新後は,ウインドウ内のの任意の場所で右クリックして「保管」を選んで下さい. この操作を行わない場合,全ての更新が無かったことになります.
    (参考)日本語を使っても,特に問題はなさそうです.

 

テーブルのインポート,エクスポート

CSV 形式のファイルなどと,テーブルの中身をインポート・エクスポートすることも 簡単に行えます.

閲覧,編集したいテーブル名を右クリック. 「データ」-> 「ロード」でインポート. 「データ」-> 「抽出」でエクスポート.