Spring Bootにおける設定ファイル1であるapplication.propertiesについて、H2データベースに接続する際の設定2を例として見ていく3。
ここでは、1行ずつ設定を追記していく形式をとる。
1. データベースのJDBC URLを記述する。
spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
jdbc:h2:mem:<データベース名>
により、インメモリデータベース4としている。接続が切れた際にデータを保持するためDB_CLOSE_DALAY=-1
を、終了時にデータベースを閉じることを無効にするためDB_CLOSE_EXIT=FALSE
を追加する。
2. JDBCドライバのクラス名を記述する。
spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driver-class-name=org.h2.Driver
H2データベースにおけるJDBCドライバのクラス名はorg.h2.Driver
。PostgreSQLであればorg.postgresql.Driver
。
3. データベースへのログインユーザ名、ログインパスワードを記述する。
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.datasouece.username=sa
spring.datasource.password=
4. SQL文の文字エンコーディングを指定する。
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.datasouece.username=sa
spring.datasource.password=
spring.datasource.sql-script-encoding=UTF-8
5. コンソールの有効設定を記述する。
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.datasouece.username=sa
spring.datasource.password=
spring.datasource.sql-script-encoding=UTF-8
spring.h2.console.enabled=true
H2コンソールを有効にしたい場合、true
を設定する。
6. データベースの初期化を行うかの設定を記述する。
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.datasouece.username=sa
spring.datasource.password=
spring.datasource.sql-script-encoding=UTF-8
spring.h2.console.enabled=true
spring.datasource.initialization-mode=always
always
で初期化を行う。その他、embedded
, never
が指定可能。以前のSpring Bootのバージョンでは、spring.datasource.initialize=true
であった。
7. DDLおよびDMLのリソース参照を設定する。
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.datasouece.username=sa
spring.datasource.password=
spring.datasource.sql-script-encoding=UTF-8
spring.h2.console.enabled=true
spring.datasource.initialization-mode=always
spring.datasource.schema=classpath:schema.sql
spring.datasource.data=classpath:data.sql
指定ファイル前にclasspath:
を付ける。schema.sql
にDDLを、data.sql
にDMLを定義する5。
-
アプリケーションにハードコーディングしたくない値を記述するファイル。プロパティファイルとも呼ばれる(拡張子
.properties
がついていている)。 ↩ -
データベースへの接続情報は環境に依存するため、設定ファイルに記述する候補となる。 ↩
-
中身をよく見ずなんとなく書いて進めようとしている自分に気づいたため。 ↩
-
データおよびその変更を永続化する必要がない場合に用いられる。 ↩
-
DDL(Data Definition Language)は定義する方なので、
CREATE
/DROP
/ALTER
など。DML(Data Manipulation Language)は操作する方なので、SELECT
/INSERT
/UPDATE
/DELETE
など。 ↩