HOWTO · Java

Java の埋め込みデータベース

このチュートリアルでは、Java の組み込みデータベースの比較について説明します。

データベースソリューションがスタンドアロンとしてではなくアプリケーションに組み込まれているデータベーステクノロジは、組み込みデータベースと呼ばれます。これらのデータベースは軽量で高速であり、構成が簡単でテスト容易性が向上しているため、開発およびテスト段階で役立ちます。

Java 用の組み込みデータベースには多くの種類があります。このチュートリアルでは、Java の組み込みデータベースのいくつかの最良の選択を比較します。

次の図は、組み込みデータベースがどのように機能するかを示しています。

埋め込みデータベース

Apache Derby

Apache Derby は、Java で実装されているオープンソースデータベースです。このデータベースは Apache のライセンスに基づいています。

このデータベースの標準は JDBC と SQL です。また、クライアント/サーバーモードもサポートしています。

ダービーは、リレーショナルデータベースのすべての機能をサポートしています。

derby.jar を使用して、Java で Apachederby を実装します。接続するには、以下のコマンドに従ってください。

// load driver
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Connection c = DriverManager.getConnection("jdbc:derby:testdb1;create=true")

create=true は、データベースが存在しない場合はデータベースを作成してから接続します。このパラメーターは、データベースが存在しない場合にデータベースを作成する場合にのみ使用します。

Apache derby の jarこちらからダウンロードできます。

HSQLDB(HyperSQL データベース)

HyperSQL は、SQL 標準および JDBC 仕様に基づいて作成されています。HyperSQL は、最新のリレーショナルデータベースで使用されるすべての機能をサポートします。

組み込みモードとサーバーモードの両方をサポートします。このデータベースは純粋に Java で開発されています。

HyperSQL は、PreparedStatement および CallableStatement もサポートしています。また、2 フェーズロックとマルチバージョン同時実行制御もサポートしています。

HyperSQL は、HyperSQL、RDBMS エンジン、および HyperSQL を Java アプリケーションに埋め込むための JDBC ドライバーを含む jar パッケージで提供されます。Java で HyperSQL を接続するには、以下のコマンドに従います。

// load driver
Class.forName("org.hsqldb.jdbcDriver");
Connection connection = DriverManager.getConnection("jdbc:hsqldb:testdb", "sa", "");

HyperSQL パッケージはこちらからダウンロードできます。

H2

H2 は、SQL 標準と JDBCAPI サポートに基づくオープンソースデータベースでもあります。また、組み込みモードとサーバーモード、マルチバージョンの同時実行、および行レベルのロックもサポートしています。

Java で H2 と接続するには、以下のコマンドに従います。

// load driver
Class.forName("org.h2.Driver");
Connection connection = DriverManager.getConnection("jdbc:h2:~/test", "sa", "");

~/が他のデータベースと比較してユーザーのホームディレクトリを示す場合、H2 は非常に包括的です。

H2 データベースはこちらからダウンロードできます。