サーバーJava入門先頭  H2 DB編先頭
2009-01-31更新 2008-5-30作成

 ■H2 DB 他アプリからの利用

 ここではH2 Database Engineを、他のフロントエンドアプリケーションソフトから利用する方法について説明します。

 具体的にはODBCを利用して、Microsoft AccessやExcelからH2 DBのテーブルに接続する方法。それとJDBCを利用して、OpenOffice BaseからH2 DBのテーブルに接続する方法です。新規データベースの作成もしくは既存データベースに接続済で、H2 Consoleが開かれているところから話を進めます(データベース作成や接続は、H2 DBの操作2 を参照)。

 ■ODBCの利用

 H2 DBでは専用のODBCドライバを作ることを止めてしまいました(Ver 1.0.56から)。代わりにH2 DBにPG Serverの機能を実装し、PostgresSQLプロトコルで、PostresSQL用のODBCドライバからアクセスできます。
 まずODBCを使うために、PG Server機能をH2 DBで有効にするための説明をします。

 ■ODBC用H2 DB設定

 ODBC接続をするためにPG Serverの機能を有効にするには、H2 DBの起動方法を変えます。H2 DBの起動方法には
(1) スタートメニューから H2 Console を選択して起動する
(2) スタートメニューから H2 Console (Command Line) を選択して起動する
(3) サービスとしてインストールし、H2 Database Serviceとして起動する
の3種類あります。

 このうち2008/2/2のVer 1.0.66の段階でPG Serverが使えるのは(1)か(2)だけです。このバージョンの段階ではサービスとして起動すると、PG Server機能が使えません。従ってODBC接続も出来ません。PG ServerかService Wrapperかどちらかに問題があるのでしょうが、折りを見て作者に問い合わせてみます。

 この(2)もしくは(3)の方法でH2 Consoleを選択して起動した場合、実行されるのは org.h2.tools.Console というプログラムです。PG Serverを使うためには実行されるプログラムを org.h2.tools.Server に変更する必要があります。
 そのための設定を以下に説明します。

 ・H2 Consoleの設定変更

 修正するファイルは\Documents and Settings\WindowsユーザーID\スタート メニュー\プログラム\H2にある、H2 Consoleというショートカットファイルです。このファイルのプロパティに「リンク先」がありますが、その内容を修正します(Windows2000の場合は、「タスクバーをマウス右ボタンクリックでプロパティを選択」−「詳細タブ選択」−「詳細ボタン」と進み、「プログラム」−「H2」−「H2 Console」と選択してください)。つまり「データベースファイルの場所変更」で説明したのと同じファイルです。

 この「リンク先」で起動するプログラムを指定していますが、これが org.h2.tools.Console になっています。ここを org.h2.tools.Server に変更して保存してください。あとは通常どおり、スタートメニューから H2 Console を選択してH2 DBを起動するだけです。

 ・H2 Console (Command Line)の設定変更

 この場合にはバッチファイル、 H2インストールディレクトリ\bin\h2.bat を実行することによりH2 DBが起動されます。そこでこのh2.batを修正します。

 バッチファイルの中では
@java -cp "h2.jar;%H2DRIVERS%;%CLASSPATH%" org.h2.tools.Console
と、 org.h2.tools.Console になっているのでここを org.h2.tools.Server に変更します(バッチファイルはダブルクリックして開こうとすると実行されてしまうので、編集するときは注意してください)。
 変更後は通常どおり、スタートメニューから H2 Console (Command Line) を選択してH2 DBを起動するだけです。

 ■ODBCドライバ

 H2 DBでは専用のODBCドライバを作ることを止めてしまいました(Ver 1.0.56から)。代わりにH2 DBにPG Serverの機能を実装し、PostgresSQLプロトコルで、PostresSQL用のODBCドライバからアクセスできます。

 PostresSQL用のODBCドライバはhttp://www.postgresql.org/ftp/odbc/versions/msi/からダウンロードしてください。
 対応ドライバのバージョンは8.2.4以降ということなので、psqlodbc-08_02_0400.zipより下にあるファイルを選択すれば大丈夫です。

 ・ODBCドライバインストール

 ダウンロードしたファイルはZIP圧縮されているので、どこかにディレクトリを作成して展開してください。
 展開するとpsqlodbc.msiという、Windowsインストーラーのファイルがあります。こちらを実行すればインストールが開始されます。

 インストールが完了したら続いてODBCの設定を行います。
 「スタート」メニューから「コントロールパネル」−「管理ツール」−「データソース(ODBC)」と進みます。そうすると「ODBC データソース アドミニストレータ」というダイアログが開きます。ここで「システムDSN」か「ユーザーDSN」のタブを選択してください(両者の違いは設定したODBCデータソース情報が、使用中PCの全ユーザーで有効か、現在ログイン中のユーザーでのみ有効かの違いです)。

 タブを選択したら「追加」ボタンを押し、データソースのドライバを選択します。
 これはH2 DBの文字コードがUnicodeということもあるので、「PostgresSQL Unicode」を選択しましょう。後はそのままデータソース設定に移ります。

ODBCデータソース設定内容
設定項目 説明
データソース名  このODBCデータソースに付ける名前です。データソース設定は接続するデータベース毎に必要なので、対象データベースが分かる名前が良いと思います。
SSL Mode  「無効」を選択してください。H2 DBのPG Server機能はSSL接続をサポートしていません。
サーバー名  ODBC接続をするサーバー名を指定します。
 使用中のPC上でH2 DBも動かしている場合は、localhost と指定します。
 H2 DBが動いているのが別PCなら、そのPCのIPアドレスかHOST名を指定します。
Port  5435にしてください。H2 DBのPG Server機能はこのポート番号でODBC接続を待っています。
データベース名  ODBC接続をする対象データベースを指定します。
ユーザー名  ODBC接続する際の、ユーザーIDを指定します。
パスワード  ODBC接続するユーザーIDに対するパスワードを指定します。


 localhost接続の、ODBCデータソース設定のサンプルを図示しておきます。

ODBCデータソース設定のサンプル
ODBCデータソース設定のサンプル

 続いて「ODBCデータソースの詳細設定」に移ります。ダイアログ左下の「オプション(高度な設定)」にある、「データソース」ボタンを押してください。

 この設定はH2 DBの設定に直接関わるものではありません。厳密にはPostresSQL用ODBC設定の範疇に入ります。

 この設定をする目的は、H2 DBのサポートフォーラム(日本語版)で報告されていた、「ODBC接続のパフォーマンスの問題」を回避するためです。

 「高度な設定」ダイアログが表示されたら、「設定2」ボタンを押してください。そして「サーバー側Prepare」をチェックします。

 「サーバー側Prepare」を設定した状態のサンプルは次のとおりです(「設定2」ボタンを押した状態です)。

「高度な設定」のサンプル
「高度な設定」のサンプル


 ちなみに「データベース管理者」や、その少し上の「管理者権限の内容」の補足で挙げたような疑問は、ODBC接続にも付いてきます。

 ODBC接続設定で、存在しないデータベースを指定すると、H2 Consoleで接続したときと同様に、指定したデータベースが作成されます。
 確かにH2 DBは、本格的データベースを手軽に使えるのが売りですが。しかし外部からODBC接続したときに誰でも新規データベースを作成出来てしまうと言うのは、正直どうかとも思います。

 MS ACCESSのようなデスクトップデータベースとして、手軽に使うには確かに良いのですが。将来のバージョンで、権限オプションでこのあたりの制御が出来るようになるとよいのですが。



 ・EXCELからの利用

 新しいEXCELブックを開いたら、メニューの「データ」−「外部データの取り込み」−「新しいデータベースクエリ」を選択します。
 そうすると一覧に、登録したH2 DBのODBCデータソースが表示されているので、それを選択してください。

 ・ACCESSからの利用

 Accessを立ち上げたら、メニューの「ファイル」−「開く」と進みます。「ファイルを開く」ダイアログで「ファイルの種類」に「ODBC Database」を指定します。
 次に「データソースの選択」ダイアログボックスが表示されるので、「コンピューターデータソース」タブを選択してください。そうすると一覧に、登録したH2 DBのODBCデータソースが表示されているので、それを選択してください。

 ・OpenOffice Baseからの利用

 OpenOffice Baseを起動すると、「データベースウィザード」が開きます。ここで「既存のデータベースに接続」でODBCを選択し、次に進みます。
 次に「システム上のODBCデータソースの名前」を指定する画面に移ります。ここで上の 「ODBCデータソース設定内容」 で説明したデータソースを指定します。データソース指定後、「完了」ボタンを押してください。ODBCデータソースを作成したときに指定したユーザーID、パスワードで、H2 DBのデータベースに接続されます。
 新規にODBC接続のOpenOffice Baseデータベースを作成したので、「名前を付けて保存」ダイアログが表示されるので、任意の名前を付けて保存してください。次回からはここで保存したOpenOffice Baseデータベースを開けば、それはODBC経由でH2 DBのデータベースに接続されています。




このページの先頭  技術メモ先頭  サーバーJava入門先頭  H2 DB Engine編先頭
Copyright © 2008-2009 yok. All Rights Reserved.