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

Sheeraz Gul 2023年10月12日
  1. Apache Derby
  2. HSQLDB(HyperSQL データベース)
  3. H2
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 データベースはこちらからダウンロードできます。

著者: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

関連記事 - Java Database