(第1回) 手軽に試せるH2データベース入門【H2, Spring Boot2】

H2入門の第1回です。Spring Bootで手軽に使う事ができるデータベースのH2について説明しています。まずはSpring Bootプロジェクトを作成して、H2やSpring Data JPAの使い方を学習する準備をしていきます。Spring Bootの初心者・入門者の方は、参考にしてみてください。

動作環境と今回の目的

最終更新日:2021/5/19

Spring BootでウェブアプリやRest API(Web API)などを開発する場合、データベースを必要とするアプリも多いと思います。
そこで、Spring Bootで簡単に試せるH2というデータベースについて、実際にSpring Bootのプロジェクトを作りながら説明していきます。
まず今回は、EclipseでSpring Bootのプロジェクト作成と動作確認までをやっていきます。

・動作環境やバージョンは以下の通りです。
OS:macOS Catalina(バージョン10.15.5)
開発環境:Eclipse(Pleiades All in One、4.16(2020-06)、Java Full Edition版)、(*2020/8/28時点の最新安定版です)
Spring Boot:バージョン2.3.3
Java:11

◾️Eclipse(Pleiades All in One、Java Full Edition版)
Eclipse(Pleiades All in One、Java Full Edition版)は、最初からEclipseの日本語化がされていますし、STS(Spring Tool Suite)やLombokなどの複数の有用なプラグインも入っていて設定済みなので、開発環境構築の手間が省けます。
Eclipse(Pleiades All in One)のインストールについては別ページに書いていますので、そちらを参考にしてください。

【Java初心者】Eclipse(Pleiades All in One)をインスールしてJava開発ができるようにする【macOS版】

ただEclipse(Pleiades All in One)でなくても、これからやっていく事はSTSプラグインを入れたEclipseならできると思いますし、もちろんSTSでもできると思います。

H2データベースとは?

H2はJavaプラットフォーム上で動作するデータベース(DB)です。インストールをする必要がないので、何かDBが必要なウェブアプリを作りたい時や、DB周りのJavaプログラミングを試したりテストしたい場合は、手軽に使えるので便利です。
そして、ある程度本番運用が見えてきたら、接続先のDBをH2からMySqlやOracleなどに変更すれば良いわけです。

H2はインストールする必要がないと書きましたが、データの保存先はインメモリかファイルベースです。データを永続的に保存する必要がないならインメモリでいいし(アプリ終了時にデータはなくなる)、データを残しておきたいなら(永続的に保存したいなら)ファイルベースにします。

そして、Spring Bootでは、このH2を簡単に組み込んで扱う事ができるので、DBを必要とするSpring BootのウェブアプリやREST API(Web API)などを試しに作りたいなら、H2を使用してみるのも良いと思います。

Spring Data JPAとは?

Spring Frameworkでは、DBアクセス機能にSpring Data JPAを用意しています。JPA(Java Persistence API)は、JavaのDB操作の仕様(フレームワーク)で、エンティティオブジェクトとDBテーブルのORマッピング、クエリ言語のJPQLなどがあります。
そして、Spring Data JPAはそのJPAを扱いやすくするための機能です。

Spring Data APIを使う事で、DB周りのプログラミングのコード量(労力)を削減できる事ができます。具体的には、ORマッピングだったり、SQLを書く必要がなくDBのCRUD操作ができます。また、SQLだけでなく、DBアクセスのためのRepositoryクラスの実装をしないでもCRUD操作ができます。
もちろん、SQL(やJSQL)を使う事はできるので、単純でないDBアクセスならSQLを書く必要が出てくると思います。

これ以降の話では、Spring BootアプリでSpring Data JPAを使ったプログラミングをして、H2データベースにアクセスする事を目標にしています。

◾️Spring Data JDBC
Spring FrameworkのDBアクセス機能には、Spring Data JPAの他にSpring Data JDBCがあります。
Spring Data JPAとSpring Data JDBCのどちらを使うかは人それぞれ、プロジェクトそれぞれだと思いますが、Spring Data JDBCはDB操作のSQLを書く必要があるため、Spring Data JPAの方がコード量は少なくて済みます。

Spring Bootのプロジェクトを作成する

それではH2を試すために、Eclipse(Pleiades All in One)でSpring Bootのプロジェクトを作成します。

EclipseでSpring Bootプロジェクトの新規作成については別ページで書いていますので、そちらを参考にしてください。
Sprint Boot2.3で初めてのJavaのウェブアプリ開発【Eclipse(Pleiades)、macOS版】

今回、Spring Bootプロジェクトの作成時に選択する必要な依存関係のライブラリは5つです。

  • Spring Boot Devtools
  • Lombok
  • Spring Data JPA
  • H2 Database
  • Spring Web
H2、Spring Data JPAテストのためSpring Bootプロジェクト作成

H2とSpring Data JPAを試すだけなら"H2 Database"と"Spring Data JPA"の2つでできますが、"Lombok"はエンティティクラスのコード量を削減するため、"Spring Boot Devtools"と"Spring Web"は、H2データベースをブラウザ上で管理・操作するためのツールを使うために使います。

アプリの実行と動作確認

プロジェクトの作成が完了したら、Spring Bootのアプリを起動してみます。アプリを起動するとは言っても、Spring Bootのひな形プロジェクトができただけですので、一応の動作確認です。

今回作成したプロジェクト名は「test-h2」です。
プロジェクトを作成すると1つだけJavaファイルが自動で作成されて(下の画像でいうとTestH2Application.java)、そのファイル内にmainメソッドがありますので、このファイルを右クリック->実行->Spring Bootアプリケーションを選択するとアプリが起動します。
アプリが起動すればコンソールタブに起動ログが出力されるはずです。
Spring Bootアプリの起動

あと、H2のブラウザ管理ツールの"H2 Console"も確認しておきます。プロジェクト作成時にライブラリの依存関係で"Spring Web"を選択するとTomcatがプロジェクトに内蔵され、"H2 Database"と"Spring Boot Devtools"を選択すると"H2 Console"がプロジェクトで使えるようになります。"H2 Console"のアクセスURLは「http://localhost:8080/h2-console 」です。
H2 Consoleの確認

初期表示画面は英語ですが、左上のボックスから日本語を選択して変更できます。そして、この画面からログインしてH2データベースにあるデータを見たり操作する事ができます。

最後に、次回

以上簡単でしたが、H2データベース入門のスタートとしてH2を試すためのSpring Bootプロジェクトの作成までをやってみました。
今後、実際にH2をSpring Bootで試したみたり、H2 Consoleを使用してみたり、Spring Data JPAを試すためのJavaコードを書いていこうと思います。

そして次回は、H2を試すためのSpring Bootプロジェクトを作成したので、application.propertiesでH2の接続設定、Spring Data JPAのエンティティクラスの作成、data.sqlで初期データ作成などをやっていきます。

(第2回) H2の接続設定、エンティティクラスの作成、data.sqlで初期データ作成
H2データベース入門【Spring Boot】トップに戻る

[広告] Kindle Unlimitedなら対象の本が定額で読み放題
対象本には、プログラミングなどのIT関連本、マンガ、雑誌、ビジネス書などがたくさんあります!

Spring Bootの記事

Spring Boot2で日記投稿ウェブアプリ開発入門トップページ
Spring Boot2.3,2.4でシンプルな日記投稿ウェブアプリの開発しながら、入門者・初心者にもわかりやすいように説明しています。DBを使用して、新規投稿、編集、削除、一覧表示という基本的なCRUD機能を備えたアプリです。