H2データベース

ひょんなことから、H2データベースというものを知ったので、試してみる。
公式サイトは、ここらへん
とりあえず、トップページにパフォーマンス比較があるけど、これってマジなんですかね。

インストールと実行

めんどいので、インストールはすべてデフォルトで。


インストール後、スタートメニュー→H2→H2 Consoleを実行すると、
システムトレイにH2のアイコンが出現し(この時点でDBが起動されてる?)、
ブラウザベースのコンソールが表示される。
そのままConnectを押すと接続できる。


一応、GUIでInsertとかDeleteやらできるみたい。
なんだかいい感じかも。

Javaから接続

こんなJavaプログラムを実行する。
詳細は省略。


Connection conn = null;
ResultSet rs = null;
Statement stmt = null;

try {
Class.forName("org.h2.Driver");
conn = DriverManager.getConnection("jdbc:h2:tcp://localhost:9092/test", "sa", "");
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES");

while (rs.next()) {
System.out.println(rs.getString(1));
}

} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
Utils.releaseResultSet(rs);
Utils.releaseStatement(stmt);
Utils.releaseConnection(conn);
}

結果。


TEST
HOGE
RIGHTS
TABLE_PRIVILEGES
COLUMNS
HELP
CROSS_REFERENCES
SETTINGS
USERS
FUNCTION_ALIASES
CONSTRAINTS
COLLATIONS
TABLES
TYPE_INFO
SCHEMATA
TABLE_TYPES
SEQUENCES
ROLES
COLUMN_PRIVILEGES
CATALOGS
VIEWS
IN_DOUBT
INDEXES
TESTとHOGEというテーブルは、試しに作ったもので、
あとは始めから存在する管理用のテーブルっぽい。

おわり

組み込みで使えるらしいので、HSQLとかDerbyと同じように使えるのかも。
速度が速い(自称)のに、Javaで作られてるってのもちょっと驚き。


ちなみに、Webベースのコンソールでは、他のDBにも接続できるように作られている。
# ちょっと設定が必要だけど。
PostgreSQLに接続できることは確認したけど、GUIでのInsertはできないみたいだった。
なんでだろ。


あと、たまーにポートを握ったまま落ちてたりしたのは、気のせいなのかなぁ。