[h2db][play1]h2databaseのこと

  h2database, playframework1

H2 Database Engine
Welcome to H2, the Java SQL database. The main features of H2 are:
・Very fast, open source, JDBC API
・Embedded and server modes; in-memory databases
・Browser based Console application
・Small footprint: around 2 MB jar file size

H2 Database Engine

h2databaseについてのメモ書きがたまっているので、ツラツラと書き残しておこうと思います。

h2databaseはJavaで書かれたSQLiteのような組込データベースです。
Javaで記述されているのでJavaと親和性が高いです。私はplayframework1で標準採用されていたことから、よく利用しています。

Oracle、MySQLやPostgresといったメジャーなデータベースの方言を受け付けてくれるモードを持っています。
さらにインメモリをサポートしているので、高速動作して後始末に気を使わなくていい単体テスト用のDBとして便利です。

ただ方言についてはあくまで解釈してくれるレベルで、固有の機能や関数をすべてサポートするものではありません。データベース専用にチューニングされたSQLは動かないことが多いです。

テスト用途に限らず、組込データベースということで、面倒なインストール作業をしなくてもすぐに使えるので、アプリケーションに同梱するのに向いています。
データのバックアップも停止中にファイルをコピーするだけでよいので非常に簡単です。

playframework1のプロジェクトで使う場合、http://localhost:9000/@db へアクセスすると下記のような管理画面へつながります。

h2db管理画面トップ

JDBC URLには、プロジェクト起動時にログに出てくる “Connected to ..” の部分に書かれている接続先を指定します。

21:57:46,515 INFO  ~ Listening for HTTP on port 9000 (Waiting a first request to start) ...
~ Server is up and running
21:57:53,159 INFO  ~ Connected to jdbc:h2:C:\play\work\myapp\db\h2\play;MODE=MYSQL
21:57:54,497 INFO  ~ Application 'osyarevo' is now started !

接続するとブラウザ上からSQLの実行、データの確認などが行えます。

ちなみにh2databaseは簡易サーバーモードも備えており、JDBCドライバ経由で接続することもできますので、使い慣れたSQLツールを利用することも可能です。

LEAVE A COMMENT