LoginSignup
3
0

はじめに

本記事ではSpring BootのWebアプリケーションにH2データベースを組み込む方法を記載します。

前提条件

  • Spring Bootのプロジェクトが起動できること

上記がまだの場合は以下の記事を参考に起動まで実施してみて下さい

H2とは

H2とはオープンソースで開発されているRDBMSの1つで、プログラム本体のサイズが小さいため軽量に動作します。
また、H2はOSにインストールせずに利用できるというメリットがあり、Webアプリケーションに組み込んで使うのに便利なRDBMSです。
大量のデータを扱うような大規模アプリケーションでの利用には不向きですが、簡単なアプリケーションであれば十分に実用できます。

依存関係の追加

H2を利用するために依存関係を追加します。
※ビルドツールによって依存関係を追加するファイル名が異なります

  • Mavenの場合
    pom.xml
    <dependencies>  
        ...
            
        // H2 を利用するための依存関係の設定
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
    
        // Spring JDBC を利用するための依存関係の設定
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
    </dependencies>
    

  • Gradleの場合
    build.gradle
    dependencies {  
            ...   
            runtimeOnly 'com.h2database:h2'
            implementation 'org.springframework.boot:spring-boot-starter-jdbc'            
    }
    

JDBC(Java DataBase Connectivity)とは
JavaのプログラムからRDBMSにアクセスしてデータの読み書きを行うためのAPI

application.properties に設定追加

JDBCドライバやデータベースへのアクセスに関する設定を追加します。

application.properties
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:~/testdb
spring.datasource.username=h2db
spring.datasource.password=h2db

spring.sql.init.mode=always
spring.h2.console.enabled=true
項目名 詳細 設定値(H2)
spring.datasource.driver-class-name JDBCドライバのクラス名 org.h2.Driver
spring.datasource.url データベースのパス 「jdbc:h2:」 + ファイルのパス
※上記例の場合~/配下に「testdb.mv.db」を作成して配置する
spring.datasource.username ユーザ名 任意
spring.datasource..password パスワード 任意
spring.sql.init.mode SQLファイルを利用したデータベース初期化を行うかどうか always:常に行う
embedded:組み込みデータベースの時のみ行う
never:行わない
spring.h2.console.enabled H2コンソールを有効にするか否か true:有効
false:無効

spring.datasource.url の設定値について
H2には、メモリ上にのみ記録するインメモリデータベースと、
ローカルファイルに保存するローカルデータベースの二つのモードが用意されています。
インメモリデータベースの場合、アプリを停止するとメモリ上に記録されたデータは消えます。
ローカルデータベースの場合、データは消えずDBファイル(設定値に)に保存されます。(上記の例はローカルデータベースの場合)

インメモリデータベースの場合は以下のように設定します。
spring.datasource.url=jdbc:h2:mem:データベース名

接続確認

アプリを起動してベースURLに「h2-console」という文字列を繋げてアクセスします。
例)ベースURLが「http://localhost:8080」の場合
http://localhost:8080/h2-console

以下の画面が表示されます。
スクリーンショット 2024-01-06 23.03.15.png

JDBC URL , User Name , Passward に設定した値を入力して「Coonnect」をクリックします。
スクリーンショット 2024-01-06 23.07.55.png

以下の画面が表示されれば接続成功です。
スクリーンショット 2024-01-06 23.13.27.png

おわりに

2024年もよろしくお願いいたします🎍
間違いがありましたらご指摘くださいませ。

3
0
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
3
0