H2 コンソールは tomcat 経由で提供される

現在、Spring Batch の勉強をしている環境が MySQL や PostgreSQL を勝手にインストールできないため、勉強用のプログラムの試作では H2 というデータベースを使っている。

インストールをしなくても、プロジェクトの依存関係に H2 ライブラリを登録すれば開発したプログラムですぐ使えるようになるので便利。ただ、こんな DB があることをつい最近まで全然知らなかった(^^;;;。

AI様によると「Javaで記述された非常に軽量かつ高速なオープンソースRDBMS。サイズは約2.5MBとコンパクト。インストール不要で利用可能」というもので、データをメモリにロードしプログラムの実行が終わったらすぐに破棄するという使い方ができるので、単体テストで使うと便利・・・ということのようだ。
ちなみに俺はメモリ上への展開ではなく、ファイルに出力する形をとっている。

ただ、DBの読み書きがうまくいっているかはログとかで確認できるけど、プログラム実行後にテーブル内が確認したいという時はどうすんの?インストールしないから、PostgreSQL の psql みたいな操作ツールはないんよね?
心配ご無用。Web 画面で「H2 コンソール」というのが提供されている。

なるほどって思って、下記のような設定でコンソール利用可能にした。(H2 関係の設定のみ抜粋)
resource/application.properties

# H2 を PostgreSQL 互換モードで使用(テーブル名等は小文字で)
spring.datasource.url=jdbc:h2:./.data/h2/db;MODE=PostgreSQL;DATABASE_TO_LOWER=TRUE
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
# H2 Console を有効化
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
# JPA/Hibernate設定
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

バッチが終了するとコンソールも閉じてしまうという話をチラっとみたので、バッチを途中でブレークして


にアクセスしてみたのだが「このサイトにアクセスできません localhost で接続が拒否されました。」になってしまう。8080 ポートで受信状態になってないときのエラーやん。
なんと、コンソール用の Webサービスは tomcat を使うようだ。H2 そのものが 8080 ポートへのアクセス機能を提供しているのかと思ってたが、よく考えたら、それだと Web アプリの開発のときに面倒だよな。8080 のポート番号も変えなきゃいけないし・・・

というわけで tomcat の依存関係の登録が必要。
pom.xml に以下の記述を追加し、

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Alt + F5 キー押下でプロジェクトの更新を行おう。
(当ブログの「Spring Batch の依存関係をあとから追加する(Maven 版)」も参照)

また、テスト用のバッチはあっという間に終わってしまうので、途中でブレークしてその間にコンソールを開くなどしないといけない。
そこで、バッチ終了後にコンソールが使えるよう、以下の記述も application.properties に追加する。

# バッチ完了後もサーバーを起動したまま(Webコンソール有効状態維持)
spring.batch.job.enabled=true
# Webアプリケーションとして常駐
spring.main.web-application-type=servlet

これで、バッチ終了後も Eclipse で見ると赤いストップボタンが有効になってて、まだ「実行状態」なのがわかる。

20260624_H2_0.jpg

この状態でもう一度


にアクセス。
無事、ログイン画面が表示されるでしょ?

20260624_H2_1.jpg

表示は左上のセレクターで「日本語」にできるよ。
JDBC URL にディフォルト値の「jdbc:h2:~/test」がセットされているので、application.properties
に記述しているとおり「jdbc:h2:./.data/h2/db」に変更する。

これで「接続」(Connect)ボタンを押下すればコンソール画面が開く。

20260624_H2_2.jpg

SQL文を実行してみる。お、ちゃんとテーブルにデータが登録されてるじゃん。

Eclipse 側で赤い押して処理を終了したら、もうアクセスはできません(笑)

トラックバック(0)

このブログ記事を参照しているブログ一覧: H2 コンソールは tomcat 経由で提供される

このブログ記事に対するトラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/7217

コメントする

このブログ記事について

このページは、shinodaが2026年6月24日 20:29に書いたブログ記事です。

ひとつ前のブログ記事は「Spring Batch の依存関係をあとから追加する(Maven 版)」です。

次のブログ記事は「ClassPathResource と FileSystemResource」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら