Spring Boot DB連携

インメモリ型のH2DBに接続しMyBatisを利用してみた

データベースが用意されていない段階で、データベースアクセスするプログラムを作成する場合は、インメモリ型のH2DBを利用すると便利である。

今回は、Spring Bootアプリケーションで接続するデータベースをインメモリ型のH2DBに変更してみたので、そのサンプルプログラムを共有する。

前提条件

下記記事の実装が完了していること。

MyBatisのSQL文をXMLファイルに配置してみたMyBatisを利用するプログラムで、これまではMapperクラスに直接SQL文を記載していたが、今回はXMLファイルにSQL文を移動し...



サンプルプログラムの作成

作成したサンプルプログラムの構成は以下の通り。
サンプルプログラムの構成
なお、上記の赤枠は、前提条件のプログラムから追加/変更したプログラムである。

build.gradleの内容は以下の通りで、H2DBに接続するための設定を追加している。



application.propertiesの内容は以下の通りで、インメモリ型のH2DBに接続するための設定に変更している。



また、UserDataMapper.xmlの内容は以下の通りで、findMaxIdのSELECT文をH2DB用に変更している。



さらに、schema.sqlとdata.sqlの内容は以下の通りで、Spring Bootアプリケーションを起動したタイミングで実行されるSQLを記載している。

上記SQLは、schema.sqlに記載のCREATE TABLE文を実行した後で、data.sqlに記載のINSERT文が実行されるようになっている。また、Spring Bootアプリケーションを停止すると、作成したテーブルはクリアされる。

その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/spring-boot-h2dbmem-mybatis/demo



サンプルプログラムの実行結果

Spring Bootアプリケーションを起動し、「http://(サーバー名):(ポート番号)/」とアクセスすると、以下の画面が表示される。
サンプルプログラムの実行結果_1

その他、下記記事と同じように、データの追加・更新・削除を行うことができる。

Spring BootのWEB画面上でCRUDを含むOracleアクセス処理を実装してみた(完成イメージ編)今回は、C(Create)・R(Read)・U(Update)・D(Delete)を一通り含むOracle接続処理をSpring Boo...

また、Spring Bootアプリケーションを起動し、「http://(サーバー名):(ポート番号)/h2-console」とアクセスすると、以下の画面が表示されるため、JDBCドライバのクラス名, JDBCのURL, ユーザー名, パスワードに、application.propertiesに設定した設定名が設定されることを確認し、Connectボタンを押下する。
サンプルプログラムの実行結果_2

Spring Bootアプリケーションを起動した直後のuser_dataテーブル、m_sexテーブルの内容は以下の通りで、schema.sql⇒data.sqlを順に実行した場合のデータが設定されていることが確認できる。
サンプルプログラムの実行結果_3_1

サンプルプログラムの実行結果_3_2

要点まとめ

  • データベースが用意されていない段階で、データベースアクセスするプログラムを作成する場合は、インメモリ型のH2DBを利用すると便利である。
  • Spring Bootでインメモリ型のH2DBに接続するには、build.gradleにH2DBに接続するための設定を追加し、DB接続先設定をH2DB用に変更すればよい。
  • Spring Boot起動時に作成するテーブルのCREATE TABLE文は「schema.sql」に、INSERT文は「data.sql」にそれぞれ記載し、「src/main/resources」フォルダ下に配置すればよい。
  • Spring Bootを停止すると、起動時に作成したテーブルはクリアされる。