原
2024.08.04
143
こんにちは!原です!
今回は Spring Boot で H2 データベースを
利用するための設定をご紹介します。
Gradle の設定ファイルに下記の記述を追加します。
dependencies {
runtimeOnly 'com.h2database:h2'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
}
src/main/resources/application.properties
ファイルに H2 データベースの設定を追加します。
# Datasource
spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update
DB_CLOSE_DELAY=-1: H2の接続が切れてもデータベースをドロップしなくなる
DB_CLOSE_ON_EXIT=FALSE: VM終了時の自動データベースクローズを無効にする
/demo/src/main/resources/schema.sql に users テーブルのスキーマを用意する。
※user は H2 データベースの予約語になっているため、 user テーブルだとエラーになります。
CREATE SEQUENCE IF NOT EXISTS "ID_SEQ"
MINVALUE 1
MAXVALUE 999999999
INCREMENT BY 1
START WITH 2
NOCACHE
NOCYCLE;
CREATE TABLE IF NOT EXISTS users(
id VARCHAR(50) DEFAULT nextval('ID_SEQ') PRIMARY KEY ,
name VARCHAR(50),
email VARCHAR(80)
);
/demo/src/main/resources/data.sql に初期データを用意する。
INSERT INTO users (id, name, email) VALUES('1', 'Hara', 'hara@example.com')
http://8080/h2-console にアクセスすると下記画面が表示される。
JDBC URL を画像のものに書き換えて connect をクリックする。
すると、 users テーブルが作成されていることが確認できる。