S-JIS[2009-02-22/2009-12-25]

EclipseでJavaDBアクセス

Pleiades All in One Eclipse3.4の場合、EclipseからDBアクセスできるプラグラインが入っている。
これを使って、JDK1.6で導入されたJavaDBにアクセスすることが出来る。

JavaDBを組み込み環境で扱う場合、DBViewerは不便(設定変更時にEclipse自体の再起動が必要な場合がある)なので、データソース・エクスプローラーの方が良さそう。
でも操作感としてはDBViewerの方がシンプルでいい感じなので、JavaDBサーバーで使うのがいいかなぁ…。


DBViewerパースペクティブ

まずは、DBViewerパースペクティブを開く。

  1. メニューバーの「ウィンドウ(W)」→「パースペクティブを開く(O)」→「その他(O)」
  2. 「DBViewer」を選択して「OK」ボタン

DBViewerへのJavaDBの登録

DBViewerパースペクティブから、接続したいJavaDBの登録を行う。

  1. DBViewerパースペクティブ内の「DBツリー・ビュー」で「DBViewerPlugin」を右クリックしてポップアップメニューを開く。
  2. 「登録(A)」を選択して「データベース定義」ダイアログを開く。
  3. 「ファイルの追加(F)」ボタンを押して「ファイルを開く」ダイアログを開く。
    1. JavaDBのjarファイル、すなわちderby.jarを選択する。
      C:\Program Files\Java\jdk1.6.0\db\lib\derby.jar」
      C:\Program Files\Sun\JavaDB\lib\derby.jar」…JDK1.6.0_02以降
  4. 「データベース定義名」に名前を入れる(自分で接続用の適当な名前を付ける)。そして「次へ」
  5. 接続情報を設定する。
    接続情報 設定値(例) 備考
    JDBC Driver(J) org.apache.derby.jdbc.EmbeddedDriver  
    JDBCタイプ(D) Type4  
    接続文字列(S) jdbc:derby:C:\temp\javadb\sample1;create=false create=trueにすると、新規にDBを作成できる。
    接続ユーザ(U)
    接続パスワード(P)
    接続スキーマ(E)
      DBにユーザーやパスワードが設定されている場合に指定する。
    スキーマを省略すると「APP」になる。
  6. 「テスト接続」ボタンを押す。「接続に成功しました」と表示されればOK。
    DBが存在しているのに接続に失敗する場合、他のツール(ij.bat等)から接続しているせいかも。
  7. 「次へ」ボタンを押す。
  8. 接続オプションを設定する。
    「スキーマ(S)」で、表示したいスキーマを選択できる。SYSだの何だのはとりあえず関係ないと思うので、チェックを外しておいてもいいかも。
  9. 「終了(F)」ボタンを押して、完了。
  10. 「DBツリー・ビュー」に、自分で名付けた接続が表示される。

DBツリー・ビュー内の接続名を右クリックして「編集(E)」を選べば、上記の設定を変更することが出来る。


DBViewerでJavaDBへ接続

DBツリー・ビュー内の接続名をダブルクリックするか、右クリックして「接続(C)」を選べば、そのDBに接続することが出来る。

スキーマやテーブル・ビューをクリックすれば、テーブルを開いて中を参照したり出来る。

接続名を右クリックして「切断(L)」を選ぶと、接続を終了する。

ただし、接続内容を編集(derby.jarの場所を変えたりドライバーのクラスを変更したり)した場合、先に切断していても、同じDBに再接続することが出来ない。[2009-04-23]
(Eclipse(DBViewer)がJavaDBのファイルを掴んでしまっているようで、一旦Eclipseを終了させないと、再度そのDBに接続することが出来ない!
 こうなると他のツールからもそのDBへ接続できなくなるので、非常に不便。
 組み込み環境でなく、クライアント/サーバー環境JavaDBサーバーを起動する方式)を使う方がいいかも)

クラスローダーを使ってDriverを直接インスタンス化してDB接続する方法のJavaDBでの問題点
 (DBViewerがこの方法を使っているのかどうかは分からないけど、現象は全く同じ)

※このツールでは、ドライバーの設定を変更した際のDBのシャットダウンが上手く行われていないということなのだろう。[2009-12-25]
 切断すると「シャットダウンされました」って表示されるから、ドライバーの変更さえ行わなければきちんと動作するのだが。
 (試しに「jdbc:derby:;shutdown=true」という接続を作って実行してみると、メッセージからはきちんとシャットダウンされているようだが、再接続は出来なかった)


データベース開発パースペクティブ

まずは、データベース開発パースペクティブを開く。

  1. メニューバーの「ウィンドウ(W)」→「パースペクティブを開く(O)」→「その他(O)」
  2. 「データベース開発」を選択して「OK」ボタン

パースペクティブ内で「データ・ソース・エクスプローラー」が開く。


データソース・エクスプローラーへのJavaDBの登録

「データソース・エクスプローラー」から、接続したいJavaDBの登録を行う。

  1. データソース・エクスプローラー内の「データベース」を右クリックしてポップアップメニューを開く。
  2. 「新規(N)」を選択して「新規接続プロファイル」ダイアログを開く。
  3. 接続プロファイルを入力して「次へ」。
    設定名
    接続プロファイル・タイプ(C) Derby
    名前(M) sample1
  4. ドライバーを選択する。
    設定名 設定内容
    ドライバー(D)
    1. ドライバーの一覧に何も無い場合、コンボボックスの右側の「新規ドライバー定義」ボタンを押して「新規ドライバー定義」ダイアログを開く。
      1. 「名前/タイプ」タブでJDBCドライバーを選択する。「Derby 10.0用組み込みJDBCドライバー」バージョン10.2とか。
      2. derby.jarがクラスパスの中で見つからない場合はエラーになるので、「Jarリスト」タブから「JAR/Zipの追加(A)」ボタンを押して「C:\Program Files\Java\jdk1.6.0\db\lib\derby.jar」 を指定する。
        (JDK1.6.0_02以降は「C:\Program Files\Sun\JavaDB\lib\derby.jar」)
    2. ドライバーの一覧からDerbyのJDBCドライバーを選択する。
    データベース・ロケーション C:\temp\javadb\sample1
    ユーザー名(A)
    パスワード(W)
    DBにユーザーやパスワードが設定されている場合に指定する。
  5. 「接続のテスト(T)」ボタンを押す。「pingが正常に完了しました」と表示されればOK。
    DBが存在しているのに接続に失敗する場合、他のツール(ij.bat等)から接続しているせいかも。
  6. 「終了(F)」ボタンを押して、完了。
  7. 「データソース・エクスプローラー」の「データベース」の下に、自分で名付けた接続が表示される。

接続名を右クリックして「プロパティー(P)」を選ぶと、設定内容を変更することが出来る。


データソース・エクスプローラーでJavaDBへ接続

データソース・エクスプローラー内の接続名をダブルクリックするか、右クリックして「接続(C)」を選べば、そのDBに接続することが出来る。

スキーマ・テーブル内のテーブル名を右クリックして「データ(A)」→「編集(D)」を選ぶと、データを参照したり更新したりすることが出来る。

接続名を右クリックして「切断(D)」を選ぶと、接続を終了する。
DBViewerと違って、ちゃんと切断される)


JavaDBへ戻る / Eclipseへ戻る
メールの送信先:ひしだま