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に、PostgresqlのJDBCドライバでJavaで接続する | ホーム | Windows Server 2008 R2 Server CoreにIIS7 + PHP + MySQLの環境を構築する>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/850-8205d3c7
この記事にトラックバックする(FC2ブログユーザー)