このエントリーをはてなブックマークに追加

Springboot H2の利用

SpringBootを利用する際にjavaの組み込みDBであるH2を利用するケースのメモ

環境構築

今回はmavenを利用するため以下の内容をpom.xmlに追加します。

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>

設定

DBの設定を以下に記載します。

src/main/resources/application.properties

spring.datasource.url=jdbc:h2:mem:;DB_CLOSE_ON_EXIT=TRUE;MODE=PostgreSQL
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.initialization-mode=EMBEDDED
  • ※ spring.datasource.initialization-mode(SQLファイルを利用したデータベース初期化設定)

    always:行う , embedded:組込DBの場合のみ , never:行わない

    デフォルトは「embedded:組込DBの場合のみ」

スキーマ情報を起動時に設定する場合にはクラスパスに「schema.sql」を配置しDDLを記載する。
ファイルを変更する場合にはapplication.propertiesに「spring.datasource.schema」として記載する。
初期時にデータを登録する場合にはクラスパスに「data.sql」を配置しDDLを記載する。
ファイルを変更する場合にはapplication.propertiesに「spring.datasource.data」として記載する。

利用方法

H2はインメモリで起動時のみ有効にする方法とファイルを利用して保存しておく方法があります。

インメモリで利用する場合

spring.datasource.url=jdbc:h2:mem:;DB_CLOSE_ON_EXIT=TRUE;MODE=PostgreSQL

ファイルを利用して永続化する場合

spring.datasource.url=jdbc:h2:/springboot-h2-sample/h2-data/h2.db;DB_CLOSE_ON_EXIT=TRUE;MODE=PostgreSQL
  • ※ 「/springboot-h2-sample/h2-data/h2.db」は保存先のファイルを指定します。