JavaDBにSquirrelから接続するには

提供: tknotebook
移動: 案内検索

メインページ>コンピュータの部屋#Java>Java Tips


JDK 付属のデータベース Derby(JavaDB) で開発を行う場合、付属のコマンドラインツール IJ では大変です。 Squirrel というDBクライアントツールがとても便利で、Apache Derby プロジェクトでも推奨されています。

しかし、意外と癖があり、最初はなかなか接続方法が分からず苦労します。以下はその時の備忘録です。

JDBCドライバーの設定

Squirrel には Driver 画面というものが有り、最初は下図のように Derby(JavaDB) のドライバは 赤いバッテンが付いていて使えない状態になっています。


Squirrel Driver画面.png


ドライバを選んで鉛筆のアイコンを押すと、ドライバクラスの選択画面が現れます。

Embedded用ドライバの設定

Embedded用ドライバクラス(アプリがDBファイルに直接アクセスするドライバ)の選択方法は以下の通りです。

  1. 下図のドライバ選択画面で、「Extra Class path」タブを選び、「Add」ボタンを押して、 JDK の db\lib フォルダーにある derby.jar を一覧に加えます。
  2. 「List Drivers」ボタンを押すと「class Name」コンボでドライバを選べるようになるので、 org.apache.derby.jdbc.EmbeddedDriver を選びます。
  3. OKボタンを押せば設定終了です。

Squirrel driver選択(Embedded).png

Client用ドライバの設定

Client用ドライバ(アプリがネットワーク経由でJavaDBサーバに接続するドライバ)クラスの選択では、JDK の db\lib フォルダーにある derbyclient.jar を「Extra Class path」に加え、ドライバーは org.apache.derby.jdbc.ClientDriver を選んでください。

これで Derby(JavaDB)の JDBCドライバクラスの選択は完了です。


Squirrel driver選択2(Client).png

エイリアスの作成

DBの試験用クライアントにはおなじみの機能ですが、エイリアスとは、接続のための一連の設定に名前を付けたものです。

SquirrelのAliasタブを選び、「+」ボタンを押すとエイリアスを新規作成でき、エイリアスを一覧に加えることができます。 作成後は、エイリアスを一覧から選んで、鉛筆のアイコンを押すことで設定を編集できます。


Embedded接続の場合

Embeddedドライバで接続するアイリアスを作成する場合は、エイリアスは、Alias名、使用するドライバ(Apache Derby Embedded)、 JDBCのURLを入力しておけば簡単に接続できます。

図のように jdbc の url は 'jdbc:derby:<データベースのフォルダのパス>;create=true' というように、 jdbc:derby: の後にデータベースのフォルダのパスを記述します。


Squirrel aliasの設定 embedded.png

Client接続の場合

Client接続(ネットワーク経由でJavaDBサーバに接続)の場合は若干注意が必要です。

設定にエイリアス名、ドライバー(derby client)と JDBC URL が必要なのは同じですが 当然ながら 図のように URL の中にホスト名とポート番号を含めます。

jdbc:derby://<ホスト名>:<ポート番号>/<サーバ上でのデータベースのフォルダのパス>;create=true

という形式です。

また、何故か接続時にスキーマ(User) とパスワードの指定が必須であることに注意してください。 どちらも 'APP' でよいでしょう。 Derbyの既定のスキーマはAPPだからです。パスワードは何でもよいようです。

既定ではこういう緩い設定でよいようです。JavaDBではいろいろセキュリティをたかめる設定もあるようです。

Auto login を利用すると接続を行う毎にユーザ名、パスワードを入力しなくとも、 エイリアスに設定したユーザ名、パスワードが自動的に使用されますので便利です。

Client接続を試験するときは、サーバの起動(JDKのdb\binフォルダのstartNetworkServerスクリプトで起動)を忘れないでください。

Squirrel aliasの設定 client.png