Symfoware

Symfowareについての考察blog

DebianでH2 Database Engineを起動し、別端末からJavaで接続する

Pure Javaなデータベース「H2 Database Engine」
http://www.h2database.com/html/main.html

Windowsにインストールして、その後特に触っていませんでした。
H2 Database EngineをWindowsにインストールする


Debianで起動し、別の端末から触ってみます。




H2 Database Engineのインストール



Pure Javaなので、Javaをインストールする必要があります。
今回は、OpenJDKを使うことにしました。


# apt-get install openjdk-6-jdk




zipファイルをダウンロードし、/optに展開します。

# cd /opt
# wget http://www.h2database.com/h2-2011-11-26.zip
# unzip h2-2011-11-26.zip



※unzipをインストールしていない場合は、以下のコマンドでインストール出来ます。

# apt-get install unzip





解凍すると、「h2」というフォルダが作成されます。
このフォルダの中にあるbinにh2-1.3.162.jarファイルがあります。

単純にサーバーを起動するには、

# java -cp h2-1.3.162.jar org.h2.tools.Server




とすればOKですが、これではローカルからのアクセスのみに制限されます。

外部からのWebブラウザによる管理画面を有効にするには、

-webAllowOthers



外部からのtcp接続を許可するには

-tcpAllowOthers



と言うオプションを付けて起動してやります。


/opt/h2/binに移動して、外部からWebとTCP接続を許可した状態で起動してみます。

# cd /opt/h2/bin
# java -cp h2-1.3.162.jar org.h2.tools.Server -webAllowOthers -tcpAllowOthers





起動すると、こんな表示になります。

/opt/h2/bin# java -cp h2-1.3.162.jar org.h2.tools.Server -webAllowOthers -tcpAllowOthers
Web Console server running at http://127.0.1.1:8082 (others can connect)
Failed to start a browser to open the URL http://127.0.1.1:8082: Browser detection failed and system property h2.browser not set
TCP server running at tcp://127.0.1.1:9092 (others can connect)
PG server running at pg://127.0.1.1:5435 (only local connections)





Ctrl + Cで終了します。






Javaの接続サンプル




使用するJDBCドライバクラスは「org.h2.Driver」
接続文字列は「jdbc:h2:tcp://[サーバーのIP]/[データベースファイル]」

ログインユーザーは初期状態で「sa」
パスワードは設定されていません。

ビルドパスに、サーバーに展開した「h2-1.3.162.jar」を指定します。



接続するサンプルはこんな感じになりました。

package com.fc2.blog68.symfoware.h2;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Sample {

    public static void main(String[] args) throws Exception {
        
        //JDBCドライバをロード
        Class.forName("org.h2.Driver");
        
        //コネクション取得
        Connection conn = DriverManager.getConnection("jdbc:h2:tcp://192.168.1.4/~/test", "sa", "");
        Statement stmt = conn.createStatement();
        
        //テーブル作成
        stmt.execute("CREATE TABLE IF NOT EXISTS test (id integer, name varchar(10))");
        
        stmt.execute("DELETE FROM test WHERE id = 1");
        
        //データの登録
        stmt.execute("INSERT INTO test (id, name) values (1, '日本語テスト')");
        
        //登録したデータの検索
        ResultSet rs = stmt.executeQuery("select * from test");
        while(rs.next()) {
            System.out.println(rs.getString("name"));
        }
        
        stmt.close();
        conn.close();
        
    }
    
}





実行すると、コンソールに

日本語テスト


と表示されるはずです。







Webの管理画面



ブラウザで、http://[サーバーのIP]:8082/を表示すると、管理画面が表示されます。

04_001_20111205220701.png


保存済み設定に「Generic H2(Server)」を選択し、JDBC URLに「jdbc:h2:tcp://localhost/~/test」と
入力してログインすると、ちゃんとJavaから登録したTESTテーブルが確認できました。

04_002_20111205220701.png




テーマ:データベース - ジャンル:コンピュータ

  1. 2011/12/05(月) 22:07:54|
  2. H2 Database Engine
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集

H2 Database EngineをWindowsにインストールする

前々から気になっていたデータベース
「H2 Database Engine」

http://www.h2database.com/html/main.html

Windowsにインストールしてみます。




インストーラーのダウンロードとインストール



トップページの「Download」にある「Windows Installer (4 MB)」のリンクを
選択すると、「h2-setup-2011-03-14.exe」が取得できます。

ダウンロードしたインストーラーを実行します。


以下、インストーラーの画面です。

01_001_20110315153944.png

01_002_20110315153943.png

01_003_20110315153943.png

01_004_20110315153943.png


これでインストールは終了です。





データベースサーバーの起動



「スタート」-「全てのプログラム」-「H2」-「H2 Console」を選択。

01_005_20110315153943.png


ブラウザにこんな画面が表示されると思います。

01_006_20110315153942.png


ユーザー名は「sa」、パスワードは空白で接続できます。
また、JDBC URLで上記画像のように、「c:/test」と入力した状態で
接続を行なうと、「C:\test.h2.db」というファイルが作成されます。
これがデータベースファイルとなるようです。




データベースサーバーの停止



データベースを起動した際、タスクトレイにアイコンが表示されると思います。

01_007_20110315154028.png


アイコンを右クリックして表示されるメニューの「Exit」を選択すると
サーバーが停止します。





サービスとして起動



Windowsのサービスとして起動するには、H2のインストールフォルダにある
serviceフォルダ(デフォルトで「C:\Program Files\H2\service」)
ここにある「1_install_service.bat」を実行します。

すると、サービスに「H2 Database Engine Service」が追加されます。

01_008_20110315154028.png


「1_install_service.bat」と同じ階層にある「2_start_service.bat」を
実行するか、サービスの画面から開始すると、H2がサービスとして起動します。



テーマ:データベース - ジャンル:コンピュータ

  1. 2011/03/15(火) 15:43:17|
  2. H2 Database Engine
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
前のページ