はじめに
本記事ではSpring BootのWebアプリケーションにH2データベースを組み込む方法を記載します。
前提条件
- Spring Bootのプロジェクトが起動できること
上記がまだの場合は以下の記事を参考に起動まで実施してみて下さい
H2とは
H2とはオープンソースで開発されているRDBMSの1つで、プログラム本体のサイズが小さいため軽量に動作します。
また、H2はOSにインストールせずに利用できるというメリットがあり、Webアプリケーションに組み込んで使うのに便利なRDBMSです。
大量のデータを扱うような大規模アプリケーションでの利用には不向きですが、簡単なアプリケーションであれば十分に実用できます。
依存関係の追加
H2を利用するために依存関係を追加します。
※ビルドツールによって依存関係を追加するファイル名が異なります
- Mavenの場合
pom.xml
<dependencies> ... // H2 を利用するための依存関係の設定 <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> // Spring JDBC を利用するための依存関係の設定 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> </dependencies>
- Gradleの場合
build.gradle
dependencies { ... runtimeOnly 'com.h2database:h2' implementation 'org.springframework.boot:spring-boot-starter-jdbc' }
JDBC(Java DataBase Connectivity)とは
JavaのプログラムからRDBMSにアクセスしてデータの読み書きを行うためのAPI
application.properties に設定追加
JDBCドライバやデータベースへのアクセスに関する設定を追加します。
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:~/testdb
spring.datasource.username=h2db
spring.datasource.password=h2db
spring.sql.init.mode=always
spring.h2.console.enabled=true
項目名 | 詳細 | 設定値(H2) |
---|---|---|
spring.datasource.driver-class-name | JDBCドライバのクラス名 | org.h2.Driver |
spring.datasource.url | データベースのパス | 「jdbc:h2:」 + ファイルのパス ※上記例の場合 ~/ 配下に「testdb.mv.db」を作成して配置する |
spring.datasource.username | ユーザ名 | 任意 |
spring.datasource..password | パスワード | 任意 |
spring.sql.init.mode | SQLファイルを利用したデータベース初期化を行うかどうか | always:常に行う embedded:組み込みデータベースの時のみ行う never:行わない |
spring.h2.console.enabled | H2コンソールを有効にするか否か | true:有効 false:無効 |
spring.datasource.url の設定値について
H2には、メモリ上にのみ記録するインメモリデータベースと、
ローカルファイルに保存するローカルデータベースの二つのモードが用意されています。
インメモリデータベースの場合、アプリを停止するとメモリ上に記録されたデータは消えます。
ローカルデータベースの場合、データは消えずDBファイル(設定値に)に保存されます。(上記の例はローカルデータベースの場合)
インメモリデータベースの場合は以下のように設定します。
spring.datasource.url=jdbc:h2:mem:データベース名
接続確認
アプリを起動してベースURLに「h2-console」という文字列を繋げてアクセスします。
例)ベースURLが「http://localhost:8080
」の場合
http://localhost:8080/h2-console
JDBC URL , User Name , Passward に設定した値を入力して「Coonnect」をクリックします。
おわりに
2024年もよろしくお願いいたします🎍
間違いがありましたらご指摘くださいませ。