ubichupas.net

SQLの勉強に手軽に使えるHSQLDB

HSQLDBはJavaで開発されたオープンソースのデータベース。 わずか690KBのJARファイル(hsqldb-1.8.0の場合)にデータベース本体もクライアントもJDBCドライバも入ってる軽量仕様。 データーベースの保存先だけ指定して起動すれば直ぐにSQLコマンドを入力できる状態になるので、情報処理技術者試験なんかでちょっとSQLを勉強したい用途には最適です。 (・∀・)イイ!!

まずHSQLDBをダウンロードします。 現在の最新はhsqldb-1.9.0-rc4ですが、これはJava6でビルドされています。 Tomcat5.5でJava5を使用している場合にはビルドし直す(ant jarコマンド)か、hsqldb-1.8.0.10を使用しましょう。
ダウンロードしたZIPファイルを解凍するとソースコードなどが展開されますが、必要なのはhsqldb\lib\hsqldb.jarだけです。 hsqldb.jarを適当なディレクトリ(TomcatならWEB-INF\libなど)にコピーし、続いてデータベースの保存先とするディレクトリ(例えばWEB-INF\mydb)を作成します。
データベースの起動はJavaアプリなのでコマンドプロンプトから行います。 起動コマンドは下記のように長くなるのでバッチファイルに書いておくと良いでしょう。 起動するとmydbディレクトリの中にログファイルなどが出力されます。 停止はCtrl+Cです。

cmd.exe
hsqldb-1.9.0-rc4の場合
WEB-INF\mydb> java -cp ..\lib\hsqldb.jar org.hsqldb.server.Server -database mydb
hsqldb-1.8.0.10の場合
WEB-INF\mydb> java -cp ..\lib\hsqldb.jar org.hsqldb.Server -database mydb

次にSQLコマンドを入力するためのデータベースマネージャーを起動します。 デフォルトのユーザー名「sa」、空パスワードでHSQLDBに接続されます。

cmd.exe
WEB-INF\mydb> java -cp ..\lib\hsqldb.jar org.hsqldb.util.DatabaseManagerSwing -url jdbc:hsqldb:hsql://localhost

データベースが空なので最初はCREATE TABLE文を実行することになるかと思います。 データベースに登録したデータはmydb\mydb.scriptファイルにINSERT文の形で保存されます。

HSQL Database Manager

JDBCドライバを使うサンプルコードはこちら。

SQLTest.java
/* java -cp classes;lib\hsqldb.jar SQLTest */
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.ResultSet;

public class SQLTest
{
    public static void main(String[] args)
    {
        try {
            Class.forName("org.hsqldb.jdbcDriver");
            Connection con = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost", "sa", "");
            Statement smt = con.createStatement();
            ResultSet rs = smt.executeQuery("SELECT * FROM ACCOUNT");

            while( rs.next() )
            {
                System.out.println(
                    "ID=" + rs.getInt("ID")
                    + ", NAME=" + rs.getString("NAME")
                    + ", AGE=" + rs.getInt("AGE")
                );
            }
        } catch(Exception ignore) {}
    }
}

HSQLDBの元開発者が作ったH2 Database Engineが軽量・高機能らしい。 c⌒っ゚д゚)っφ メモメモ...

最近読んだ『基礎からのサーブレット/JSP 改訂版』にHSQLDBが載ってました。 サーブレットのライフサイクルなどを説明してからその応用であるJSPの解説に入るといった丁寧な構成で、サンプルコードもよく練られています。 J2EEパターンを意識した設計で将来の本格的なWebアプリケーション開発に繋がる堅実な基礎知識が身に付くでしょう。 なお「基礎からの」とは「Java初心者向けの」という意味ではありません。

0 件のコメント: