6
9

More than 1 year has passed since last update.

#4 Spring BootでH2 DataBaseを利用する

Posted at

#4 Spring BootでH2 DataBaseを利用する

Spring BootでH2 DataBaseを利用して簡単なプログラムを作成する前段階として、この記事では接続設定、テーブル、挿入するデータの作成を行いたいと思います。

前提条件

この記事はSpringの最低限の知識が必要になります。
また、なるべく分かりやすく書くつもりですが、この記事の目的は自分の勉強のアウトプットであるため、所々説明は省略します。

構築環境

  1. バージョン
    Spring Boot ver 2.7.5

  2. 依存関係
    image.png

Spring Boot DevTools: Webアプリケーションを自動で再起動してくれる
JDBC API, Spring Data JDBC: JDBCを使用してSQLを実行できる
H2 Database: H2 DataBaseを利用できるようになる

今回行うこと

今回は以下の流れに沿って進めていきます。

  1. H2 DataBaseとは
  2. application.propertiesにH2 DataBaseを利用するための設定を記述
  3. テーブル作成のSQLの用意
  4. 初期データを投入するSQLの用意

1. H2 DataBaseとは

H2 DataBaseはインメモリ型のデータベースであり、全てのデータをメモリ上に持ちます。そのため、Spring Boot起動中のみにしかデータベースを利用することができません。Spring Bootを再起動すると、テーブル、データは消えてしまうため、その仕組みを利用してテストや学習などに利用されている

2. application.propertiesにH2 DataBaseを利用するための設定を記述

application.properties
#DataSource
spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.sql.init.encoding=UTF-8 
spring.datasource.initialize=true 
spring.sql.init.schema-locations=classpath:schema.sql 
spring.sql.init.data-locations=classpath:data.sql 

#H2DB 
spring.h2.console.enabled=true

DB_CLOSE_DELAY=-1: H2の接続が切れてもデータベースをドロップしなくなる
DB_CLOSE_ON_EXIT=FALSE: VM終了時の自動データベースクローズを無効にする
spring.datasource.initialize=true: テーブル作成とデータ投入のSQLを実行する
spring.sql.init.schema-locations: テーブル作成のSQLを実行する
spring.sql.init.data-locations: 初期データ投入のSQLを実行する
classpath: 「src/main/resources」のこと、schema, data.sqlは「resources」直下に設置
spring.h2.console.enabled=true: http://localhost:8080/h2-console にアクセスしてコンソールを利用できる

2. テーブル作成のSQLの用意

「src/main/resources」の直下に「shema.sql」を作成

schema.sql
CREATE TABLE IF NOT EXISTS employee(
	id VARCHAR(50) PRIMARY KEY,
	name VARCHAR(50),
	age INT
	);

3. 初期データを投入するSQLの用意

「src/main/resources」の直下に「data.sql」を作成

INSERT INTO employee(id, name, age) VALUES('1', 'Kato', 10)

プログラムを起動して http://localhost:8080/h2-console にアクセスすると、下記の画像が表示されます。
image.png

Connectを押すと以下のような画像が表示され、先ほど作成した「Employee」テーブルがあることが確認できます。
image.png

テーブルを選択し「SELECT」文を実行すると、今回記述したデータが格納されていることが確認できます。
image.png

最後に

以上で接続設定を終了します。最後にデータ接続の設定に関して参考にしたサイトがあるので載せておきます。

6
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
9