Spring Bootで、H2 データベース(組み込みモード)を設定して、利用する方法について、紹介します。
インメモリデータベースについて
Spring Bootで、H2 データベースをインメモリデータベースとして利用する場合は、以下のようにアプリケーションプロパティを設定します。インメモリデータベースは、Spring Boot実行中に利用できるメモリ上のデータベースであり、Spring Bootを停止すると、データは消えます。
アプリケーションプロパティ - application.properties
/src/main/resources/application.propertiesspring.datasource.data-source-class-name=org.h2.Driver spring.datasource.url=jdbc:h2:mem:demodb spring.datasource.username=sa spring.datasource.password=dm
spring.datasource.urlプロパティに「jdbc:h2:mem:データベース名」を設定する場合は、インメモリデータベースとなります。
また、application.propertiesで、上記のプロパティの設定をしない(設定がない)場合は、デフォルトで以下の設定と同じ内容が自動設定されます。プロパティを設定しなくても、H2 データベースを利用することができます。
spring.datasource.data-source-class-name=org.h2.Driver spring.datasource.url=jdbc:h2:mem:testdb spring.datasource.username=sa spring.datasource.password=
* パスワード設定なし
ローカルデータベース(DBファイル)について
Spring Bootで、H2 データベースをローカルデータベース(DBファイル)として利用する場合は、以下のようにアプリケーションプロパティを設定します。
インメモリデータベースの場合、Spring Bootを停止すると、データは消えますが、ローカルデータベースの場合、データは消えず、DBファイルにデータが保存されます。
インメモリデータベースの場合、Spring Bootを停止すると、データは消えますが、ローカルデータベースの場合、データは消えず、DBファイルにデータが保存されます。
アプリケーションプロパティ - application.properties
/src/main/resources/application.properties
spring.datasource.data-source-class-name=org.h2.Driver spring.datasource.url=jdbc:h2:C:/eclipse_jee_201812/workspace/demo/db/demodb spring.datasource.username=sa spring.datasource.password=dm
上記の設定の場合、「C:/eclipse_jee_201812/workspace/demo/db」配下にDBファイル「demodb.mv.db」を配置します。
Spring BootでH2データベースを設定して、利用する
ここでは、Spring Bootのプロジェクトを作成します。H2 データベースを設定して、Spring Boot アプリケーションからデータベースにアクセスします。
作成したプロジェクトは、「DemoApplication.java」と「application.properties」のみを編集します。
また、H2 コンソールを利用して、データベースアクセス結果を確認します。
参考:H2 コンソール利用 - Spring BootでH2 コンソールの設定|H2 Console
動作環境
・Windows10 64bit・Eclipse 2018-12(Eclipse 4.10)
・Java 8
・Spring Boot 2.1.4(Spring Tool Suite 4)
※下記の記事で構築した開発環境を利用
Spring Tool Suite 4の開発環境構築(Eclipseにインストール)|STS4
プロジェクトを作成
まずは、「ファイル」>「新規」>「Spring スターター・プロジェクト」を選択します。次に、「新規Spring スターター・プロジェクト」画面で、プロジェクトの名前「demo」を入力して、「次へ」ボタンをクリックします。「新規Spring スターター・プロジェクト依存関係」画面で、「H2」「JDBC」「WEB」にチェックして、「次へ」ボタンをクリックして、表示された画面で「完了」ボタンをクリックします。
これで、プロジェクトの作成は完了です。
* H2 コンソールを利用するために、「新規Spring スターター・プロジェクト依存関係」画面で、「WEB」にチェックしています。
アプリケーション(Application)
アプリケーションクラスは、以下の内容で編集します。・アプリケーションクラス
DemoApplication.java
・ソースコード
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.jdbc.core.JdbcTemplate; @SpringBootApplication public class DemoApplication implements CommandLineRunner { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } @Autowired JdbcTemplate jdbcTemplate; @Override public void run(String... strings) throws Exception { jdbcTemplate.execute("CREATE TABLE customers(" + "id SERIAL, first_name VARCHAR(255), last_name VARCHAR(255))"); jdbcTemplate.update("INSERT INTO customers(first_name, last_name) VALUES ('John','Woo')"); } }
Spring Boot アプリケーションを実行すると、DemoApplication.mainメソッドが実行され、DemoApplication.runメソッドが実行されます。
DemoApplication.runメソッドでは、customersテーブルを作成して、データを登録しています。
インメモリデータベースを利用する
まず、アプリケーションプロパティを以下のように設定します。application.properties
spring.h2.console.enabled=true
* spring.h2.console.enabledプロパティに「true」を設定して、H2 コンソールが利用できるようにします。
次に、「demo」を右クリックして、「実行」>「Spring Boot App」を選択して、Spring Boot アプリケーションを実行します。
ブラウザで「http://localhost:8080/h2-console」にアクセスして、H2 コンソールのログイン画面を表示して、以下の情報(デフォルト設定)を入力して、「Connect」ボタンをクリックします。
Driver Class:org.h2.Driver
JDBC URL:jdbc:h2:mem:testdb
User Name:sa
Password:
表示された画面でSQL文を入力して、「Run」をクリックすると、インメモリデータベースにcustomersテーブルが作成され、データが登録されていることが確認できます。
ローカルデータベースを利用する
まず、アプリケーションプロパティを以下のように設定します。application.properties
spring.datasource.data-source-class-name=org.h2.Driver spring.datasource.url=jdbc:h2:C:/eclipse_jee_201812/workspace/demo/db/demodb spring.datasource.username=sa spring.datasource.password=dm spring.h2.console.enabled=true
* spring.h2.console.enabledプロパティに「true」を設定して、H2 コンソールが利用できるようにします。
次に、「demo」を右クリックして、「実行」>「Spring Boot App」を選択して、Spring Boot アプリケーションを実行します。
ブラウザで「http://localhost:8080/h2-console」にアクセスして、H2 コンソールのログイン画面を表示して、アプリケーションプロパティで設定した情報を入力して、「Connect」ボタンをクリックします。
表示された画面でSQL文を入力して、「Run」をクリックすると、ローカルデータベースにcustomersテーブルが作成され、データが登録されていることが確認できます。
DBファイル「demodb.mv.db」は、
Spring Boot アプリケーションを実行して、customersテーブル作成時に、「C:/eclipse_jee_201812/workspace/demo/db」配下に作成されます。
スポンサーリンク
0 件のコメント :
コメントを投稿