Spring Boot のアプリから H2 データベースに接続して、ブラウザで H2 コンソールを使用する方法を書いていきます。
バージョン
- Spring Boot 2.7.5
1. Spring Boot の H2 自動設定について
Spring Boot は、アプリが以下の条件を満たすと、H2 Console を使えるように自動で設定してくれます。
- Servlet ベースの Web アプリであること
com.h2database:h2
がクラスパスにあること- Spring Boot の Developer Tools を使用していること
あと、動作確認で DB 接続が必要なことに気付き、Spring Data JPA でリポジトリとエンティティを用意しました。
2. ビルドシステムの準備
上の条件を満たすために、Maven の pom.xml
で以下の依存性(ライブラリ)を追加しました。
<project> ... <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> ... </dependencies> ... </project>
Spring Boot の Web・JPA・DevTools、あとは H2 Database を追加しています。
Gradle で Developer Tools を定義する方法は以下の通りです。
dependencies { developmentOnly 'org.springframework.boot:spring-boot-devtools' }
3. Spring Boot アプリの起動
リポジトリクラスを用意して、IDE でアプリを起動すると、以下のメッセージが出力されました。
H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:b67d8288...'
コンソールを利用するために、jdbc:h2:mem:b67d8288...
の文字列を控えておきます。
※ 文字列はランダムで、上は値の一部を記載しています。
4. コンソールアプリケーションに接続
ブラウザで以下の URL を開きます。
http://localhost:8080/h2-console
コンソールのログイン画面が表示されるので、JDBC URL に先程の文字列を入力して「Connect」をクリックします。
他の入力欄はデフォルトのままで大丈夫です。
- Driver Class:
org.h2.Driver
- User Name:
sa
- Password: (空のまま)
ログイン後は、SQL を実行できたりします。