H2 Mavenプラグインを使ってH2データベースを管理する
JavaプログラムでH2データベースを埋め込む方法
JDBCを使用する
JDBCは、Javaプログラムからデータベースにアクセスするための標準的なAPIです。H2データベースには、JDBCドライバが用意されているので、JDBCを使用してH2データベースに接続し、操作することができます。
手順
- H2データベースのJDBCドライバをダウンロードします。
- JavaプログラムにJDBCドライバを追加します。
DriverManager
クラスを使用して、H2データベースへの接続を取得します。Statement
クラスを使用して、SQL文を実行します。ResultSet
クラスを使用して、SQL文の結果を取得します。- 接続を閉じます。
例
import java.sql.*;
public class Main {
public static void main(String[] args) throws Exception {
// H2データベースのJDBCドライバの読み込み
Class.forName("org.h2.Driver");
// H2データベースへの接続の取得
Connection connection = DriverManager.getConnection("jdbc:h2:mem:test", "sa", "");
// SQL文の実行
Statement statement = connection.createStatement();
statement.executeUpdate("CREATE TABLE IF NOT EXISTS test (id INT, name VARCHAR(255))");
statement.executeUpdate("INSERT INTO test (id, name) VALUES (1, 'John Doe')");
// SQL文の結果の取得
ResultSet resultSet = statement.executeQuery("SELECT * FROM test");
while (resultSet.next()) {
System.out.println(resultSet.getInt("id") + " " + resultSet.getString("name"));
}
// 接続の閉じ
connection.close();
}
}
H2インメモリデータベースは、H2データベースの軽量版であり、Javaプログラムのメモリ内にデータベースを格納することができます。H2インメモリデータベースを使用すると、JDBCを使用するよりも簡単にH2データベースにアクセスすることができます。
- H2インメモリデータベースのライブラリをダウンロードします。
- JavaプログラムにH2インメモリデータベースのライブラリを追加します。
org.h2.jdbcx.JdbcConnectionPool
クラスを使用して、H2インメモリデータベースへの接続を取得します。
import org.h2.jdbcx.JdbcConnectionPool;
public class Main {
public static void main(String[] args) throws Exception {
// H2インメモリデータベースへの接続の取得
JdbcConnectionPool connectionPool = JdbcConnectionPool.create("jdbc:h2:mem:test");
Connection connection = connectionPool.getConnection();
// SQL文の実行
Statement statement = connection.createStatement();
statement.executeUpdate("CREATE TABLE IF NOT EXISTS test (id INT, name VARCHAR(255))");
statement.executeUpdate("INSERT INTO test (id, name) VALUES (1, 'John Doe')");
// SQL文の結果の取得
ResultSet resultSet = statement.executeQuery("SELECT * FROM test");
while (resultSet.next()) {
System.out.println(resultSet.getInt("id") + " " + resultSet.getString("name"));
}
// 接続の閉じ
connection.close();
connectionPool.dispose();
}
}
JavaプログラムでH2データベースを埋め込むには、JDBCを使用する方法とH2インメモリデータベースを使用する方法があります。どちらの方法もそれぞれメリットとデメリットがあるので、目的に合った方法を選択してください。
JDBCを使用する
import java.sql.*;
public class Main {
public static void main(String[] args) throws Exception {
// H2データベースのJDBCドライバの読み込み
Class.forName("org.h2.Driver");
// H2データベースへの接続の取得
Connection connection = DriverManager.getConnection("jdbc:h2:mem:test", "sa", "");
// SQL文の実行
Statement statement = connection.createStatement();
statement.executeUpdate("CREATE TABLE IF NOT EXISTS test (id INT, name VARCHAR(255))");
statement.executeUpdate("INSERT INTO test (id, name) VALUES (1, 'John Doe')");
// SQL文の結果の取得
ResultSet resultSet = statement.executeQuery("SELECT * FROM test");
while (resultSet.next()) {
System.out.println(resultSet.getInt("id") + " " + resultSet.getString("name"));
}
// 接続の閉じ
connection.close();
}
}
H2インメモリデータベースを使用する
import org.h2.jdbcx.JdbcConnectionPool;
public class Main {
public static void main(String[] args) throws Exception {
// H2インメモリデータベースへの接続の取得
JdbcConnectionPool connectionPool = JdbcConnectionPool.create("jdbc:h2:mem:test");
Connection connection = connectionPool.getConnection();
// SQL文の実行
Statement statement = connection.createStatement();
statement.executeUpdate("CREATE TABLE IF NOT EXISTS test (id INT, name VARCHAR(255))");
statement.executeUpdate("INSERT INTO test (id, name) VALUES (1, 'John Doe')");
// SQL文の結果の取得
ResultSet resultSet = statement.executeQuery("SELECT * FROM test");
while (resultSet.next()) {
System.out.println(resultSet.getInt("id") + " " + resultSet.getString("name"));
}
// 接続の閉じ
connection.close();
connectionPool.dispose();
}
}
H2データベースをJavaプログラムで埋め込むその他の方法
H2 Consoleは、H2データベースを管理するためのWebブラウザベースのツールです。H2 Consoleを使用して、データベースの作成、接続、テーブルの作成、データの挿入、クエリの実行などを行うことができます。
- H2 Consoleをダウンロードします。
- ブラウザで
http://localhost:8082/
を開きます。 - データベースへの接続情報を入力します。
- データベースを操作します。
- プロジェクトにH2 Mavenプラグインを追加します。
- Mavenを使用してデータベースを作成します。
Spring Bootは、Javaアプリケーションの開発を簡略化するフレームワークです。Spring Bootを使用して、H2データベースを簡単に埋め込むことができます。
- プロジェクトにSpring BootとH2データベースの依存関係を追加します。
application.properties
ファイルにデータベースの設定を記述します。- アプリケーションを起動します。
H2データベースをJavaプログラムで埋め込む方法はいくつかあります。それぞれの方法にはメリットとデメリットがあるので、目的に合った方法を選択してください。
上記以外にも、H2データベースをJavaプログラムで埋め込む方法に関する情報はインターネット上でたくさん見つかります。分からないことがあれば、検索してみてください。
java database embedding