JavaでWebアプリ制作を学習してみよう。- ブレイクタイム –

JavaでWebアプリ制作を学習してみよう。- Docker MySQL を H2データベースに変更してみる –

JavaでWebアプリ制作を学習してみよう。- Dockerで動作するSpring Boot アプリの開発 –

JavaでWebアプリ制作を学習してみよう。- MySQL CentOS7 on VirtualBox データベースに接続 –

JavaでWebアプリ制作を学習してみよう。- データベースの利用 –

JavaでWebアプリ制作を学習してみよう。- Spring MVC –

JavaでWebアプリ制作を学習してみよう。- Maven or Gradle –

JavaでWebアプリ制作を学習してみよう。-その後-

開発用PC(HP Desktop 400)の HDD を SSD への交換とディスプレイ接続をDisplayport-HDMIに変更した。

JavaでWebアプリ制作を学習してみよう。-開発環境構築編-

ドローン制御の勉強をしてみようーその後

Laravel6でWebアプリ制作を学習してみた。

Webブラウザでマルチタッチ操作できるコントローラーを作成してみています。

WebブラウザからRaspberry Piに接続されたWebカメラで見ながらモーターとLEDを動かしてみた

秋月電子で購入した「0.96インチ128×64ドット有機ELディスプレイ(OLED)」をGR-KURUMIに繋げて動かしてみた。

初めてハッカソンに参加して来ました。

Ubuntu 18.04 on Windows10(VirtualBox)で Laravel フレームワークを学習してみよう その2

Ubuntu 18.04 on Windows10(VirtualBox)で Laravel フレームワークを学習してみよう その1

mariaDB(MySQL)にLibreOfficeのBASEで繋げてデータベース操作の効率化を図ってみた

windows10にVurtualBox6でUbuntu18.04をインストールしてLAMP環境が使えるようにする

windows10にVurtualBox6でCentOS7をインストールしてほどほど使える環境まで整えてみた

raspberryPiでcakePHPフレームワークを使ってみる

raspberryPiにckaePHPフレームワークを導入してみた。~メモ~

raspberryPiにapache+PHP+mySqlを導入してみた。

秋月電子で購入のSHARP LCD(400×240モノクロ)を ME-ESP32で動かしてみた Adafruitライブラリにフォントを追加

Monacaを使って作成したandroidアプリを Android Studio と Cordova 開発環境で同じものを作成してみた。

今あるものだけで作ったGPSリアルタイムマップをandroidアプリにしてみた

今あるものだけで作ったGPSリアルタイムマップを車に積んで試してみた

今あるものだけでGPSリアルタイムマップを作ってみた

GR-KURUMI+WIZ550ioシールドを使ってXPORTみたいなものを作ってみた

昔作ったAndroidアプリプログラムを最新の開発環境 Android Studio でビルド&実行を出来るようにしてみた

最新のAndroidアプリ開発環境 Android Studio を入れてみた

自由研究:DisplayTech社製モノクロLCD(128 x 64)を u8g2ライブラリで ME-ESP32に繋げて動かしてみた

自由研究:XY座標モニターを Webアプリ形式(ESP32)で作成してみた

自由研究:XY座標モニターを Webアプリ形式(node.js)で作成してみた

自由研究:秋月電子で購入のSHARP_LCD(400×240モノクロ)を ME-ESP32で動かしてみた 自作ライブラリ使用

自由研究:XY座標動作モニターを Raspberry Pi Zero の電源Onで起動しプログラム終了で電源Offを試してみた

自由研究:Python(Anaconda)を使ってプログラムを作ってみる その11 XY座標動作モニター on Raspberry Pi Zero

自由研究:秋月電子で購入のSHARP LCD(400×240モノクロ)を ME-ESP32で動かしてみた Adafruitライブラリ使用

XY座標モニタープログラムの開発

自由研究:Raspberry Pi Zero に nodejs 環境を最新にしたメモ

ドローン制御の勉強をしてみようー4回目

自由研究:Raspberry Pi Zero インストールメモ

Python(Anaconda)を使ってプログラムを作ってみる その10 XY座標動作モニター

No Image

Python(Anaconda)を使ってプログラムを作ってみる その9 XY座標動作モニター

JavaでWebアプリ制作を学習してみよう。- ブレイクタイム –

JavaでWebアプリ制作を学習してみよう。- Docker MySQL を H2データベースに変更してみる –

JavaでWebアプリ制作を学習してみよう。- Dockerで動作するSpring Boot アプリの開発 –

JavaでWebアプリ制作を学習してみよう。- MySQL CentOS7 on VirtualBox データベースに接続 –

JavaでWebアプリ制作を学習してみよう。- データベースの利用 –

JavaでWebアプリ制作を学習してみよう。- Spring MVC –

JavaでWebアプリ制作を学習してみよう。- Maven or Gradle –

JavaでWebアプリ制作を学習してみよう。-その後-

開発用PC(HP Desktop 400)の HDD を SSD への交換とディスプレイ接続をDisplayport-HDMIに変更した。

JavaでWebアプリ制作を学習してみよう。-開発環境構築編-

ドローン制御の勉強をしてみようーその後

Laravel6でWebアプリ制作を学習してみた。

Webブラウザでマルチタッチ操作できるコントローラーを作成してみています。

WebブラウザからRaspberry Piに接続されたWebカメラで見ながらモーターとLEDを動かしてみた

秋月電子で購入した「0.96インチ128×64ドット有機ELディスプレイ(OLED)」をGR-KURUMIに繋げて動かしてみた。

初めてハッカソンに参加して来ました。

Ubuntu 18.04 on Windows10(VirtualBox)で Laravel フレームワークを学習してみよう その2

Ubuntu 18.04 on Windows10(VirtualBox)で Laravel フレームワークを学習してみよう その1

mariaDB(MySQL)にLibreOfficeのBASEで繋げてデータベース操作の効率化を図ってみた

windows10にVurtualBox6でUbuntu18.04をインストールしてLAMP環境が使えるようにする

windows10にVurtualBox6でCentOS7をインストールしてほどほど使える環境まで整えてみた

raspberryPiでcakePHPフレームワークを使ってみる

raspberryPiにckaePHPフレームワークを導入してみた。~メモ~

raspberryPiにapache+PHP+mySqlを導入してみた。

秋月電子で購入のSHARP LCD(400×240モノクロ)を ME-ESP32で動かしてみた Adafruitライブラリにフォントを追加

Monacaを使って作成したandroidアプリを Android Studio と Cordova 開発環境で同じものを作成してみた。

今あるものだけで作ったGPSリアルタイムマップをandroidアプリにしてみた

今あるものだけで作ったGPSリアルタイムマップを車に積んで試してみた

今あるものだけでGPSリアルタイムマップを作ってみた

GR-KURUMI+WIZ550ioシールドを使ってXPORTみたいなものを作ってみた

昔作ったAndroidアプリプログラムを最新の開発環境 Android Studio でビルド&実行を出来るようにしてみた

最新のAndroidアプリ開発環境 Android Studio を入れてみた

自由研究:DisplayTech社製モノクロLCD(128 x 64)を u8g2ライブラリで ME-ESP32に繋げて動かしてみた

自由研究:XY座標モニターを Webアプリ形式(ESP32)で作成してみた

自由研究:XY座標モニターを Webアプリ形式(node.js)で作成してみた

自由研究:秋月電子で購入のSHARP_LCD(400×240モノクロ)を ME-ESP32で動かしてみた 自作ライブラリ使用

自由研究:XY座標動作モニターを Raspberry Pi Zero の電源Onで起動しプログラム終了で電源Offを試してみた

自由研究:Python(Anaconda)を使ってプログラムを作ってみる その11 XY座標動作モニター on Raspberry Pi Zero

自由研究:秋月電子で購入のSHARP LCD(400×240モノクロ)を ME-ESP32で動かしてみた Adafruitライブラリ使用

XY座標モニタープログラムの開発

自由研究:Raspberry Pi Zero に nodejs 環境を最新にしたメモ

ドローン制御の勉強をしてみようー4回目

自由研究:Raspberry Pi Zero インストールメモ

Python(Anaconda)を使ってプログラムを作ってみる その10 XY座標動作モニター

No Image

Python(Anaconda)を使ってプログラムを作ってみる その9 XY座標動作モニター

JavaでWebアプリ制作を学習してみよう。- ブレイクタイム –

JavaでWebアプリ制作を学習してみよう。- Docker MySQL を H2データベースに変更してみる –

JavaでWebアプリ制作を学習してみよう。- Dockerで動作するSpring Boot アプリの開発 –

JavaでWebアプリ制作を学習してみよう。- MySQL CentOS7 on VirtualBox データベースに接続 –

JavaでWebアプリ制作を学習してみよう。- データベースの利用 –

JavaでWebアプリ制作を学習してみよう。- Spring MVC –

JavaでWebアプリ制作を学習してみよう。- Maven or Gradle –

JavaでWebアプリ制作を学習してみよう。-その後-

開発用PC(HP Desktop 400)の HDD を SSD への交換とディスプレイ接続をDisplayport-HDMIに変更した。

JavaでWebアプリ制作を学習してみよう。-開発環境構築編-

ドローン制御の勉強をしてみようーその後

Laravel6でWebアプリ制作を学習してみた。

Webブラウザでマルチタッチ操作できるコントローラーを作成してみています。

WebブラウザからRaspberry Piに接続されたWebカメラで見ながらモーターとLEDを動かしてみた

秋月電子で購入した「0.96インチ128×64ドット有機ELディスプレイ(OLED)」をGR-KURUMIに繋げて動かしてみた。

初めてハッカソンに参加して来ました。

Ubuntu 18.04 on Windows10(VirtualBox)で Laravel フレームワークを学習してみよう その2

Ubuntu 18.04 on Windows10(VirtualBox)で Laravel フレームワークを学習してみよう その1

mariaDB(MySQL)にLibreOfficeのBASEで繋げてデータベース操作の効率化を図ってみた

windows10にVurtualBox6でUbuntu18.04をインストールしてLAMP環境が使えるようにする

windows10にVurtualBox6でCentOS7をインストールしてほどほど使える環境まで整えてみた

raspberryPiでcakePHPフレームワークを使ってみる

raspberryPiにckaePHPフレームワークを導入してみた。~メモ~

raspberryPiにapache+PHP+mySqlを導入してみた。

秋月電子で購入のSHARP LCD(400×240モノクロ)を ME-ESP32で動かしてみた Adafruitライブラリにフォントを追加

Monacaを使って作成したandroidアプリを Android Studio と Cordova 開発環境で同じものを作成してみた。

今あるものだけで作ったGPSリアルタイムマップをandroidアプリにしてみた

今あるものだけで作ったGPSリアルタイムマップを車に積んで試してみた

今あるものだけでGPSリアルタイムマップを作ってみた

GR-KURUMI+WIZ550ioシールドを使ってXPORTみたいなものを作ってみた

昔作ったAndroidアプリプログラムを最新の開発環境 Android Studio でビルド&実行を出来るようにしてみた

最新のAndroidアプリ開発環境 Android Studio を入れてみた

自由研究:DisplayTech社製モノクロLCD(128 x 64)を u8g2ライブラリで ME-ESP32に繋げて動かしてみた

自由研究:XY座標モニターを Webアプリ形式(ESP32)で作成してみた

自由研究:XY座標モニターを Webアプリ形式(node.js)で作成してみた

自由研究:秋月電子で購入のSHARP_LCD(400×240モノクロ)を ME-ESP32で動かしてみた 自作ライブラリ使用

自由研究:XY座標動作モニターを Raspberry Pi Zero の電源Onで起動しプログラム終了で電源Offを試してみた

自由研究:Python(Anaconda)を使ってプログラムを作ってみる その11 XY座標動作モニター on Raspberry Pi Zero

自由研究:秋月電子で購入のSHARP LCD(400×240モノクロ)を ME-ESP32で動かしてみた Adafruitライブラリ使用

XY座標モニタープログラムの開発

自由研究:Raspberry Pi Zero に nodejs 環境を最新にしたメモ

ドローン制御の勉強をしてみようー4回目

自由研究:Raspberry Pi Zero インストールメモ

Python(Anaconda)を使ってプログラムを作ってみる その10 XY座標動作モニター

No Image

Python(Anaconda)を使ってプログラムを作ってみる その9 XY座標動作モニター

JavaでWebアプリ制作を学習してみよう。- Docker MySQL を H2データベースに変更してみる –

前回は CentOS7 on VirtualBox に Docker を導入し Docker 管理下で「MySQL」「Spring Boot App」「Nginx」を稼働させたWebシステムを作成し、「Spring Boot App」を Windows10上での sts4 で「リモートデバッグ」「ホッドリロード」を行えるWebアプリ開発環境を作成し実際に体験してみました。

今回は CentOS7 on VirtualBox の Dockerで稼働している MySQL を 軽量で手軽なデータベース H2 に変更してみます。

H2データベースはAndroidアプリでよく使う手軽で軽傷なローカルデータベース SqLiteに近いのかな?と考えてしまった。

これを

これに

変えてみます。

sts4(Spring Boot)は  「application.properties」ファイルにデータベースに関する設定を記述するようになっているため「MySQLからH2へデータベースの変更は案外簡単じゃねぇ」と直感的に思い、じゃ試してみるか。ってことでやってみることになりました。

「MySQL->H2」、「H2->MySQL」とデータベースの変更方法を体験しておけば、機能単位の開発では軽量で手軽なH2を使ってプログラムを作成して、その後MySQLを使った実機環境でプログラムの統合テストするような開発を行えば、機能単位のプログラムの開発者は仕様書に基づきPCにsts4さえあればプログラムの作成が行え、あるいは依頼できるようになるのでプログラム開発者の準備時間を減らせて分散開発が行いやすくなるのではないかと思うところもある。
仕様書の他にデータベーススキーマ初期化ファイルと初期レコード追加ファイルも添付しておけばプログラム開発者に親切かも。

データベーススキーマの追加や変更もsts4上で行えるし、「phpMyAdmin」のような「h2-console」というWebブラウザからデータベースのテーブルを表示したり、レコードを操作したりできるツールも提供されているので、これまた便利で手軽にデータベースアプリが作りやすい。

「application.properties」ファイルのデータベース設定を以下のように変更することであっさりとうまく切り替えられました。

変更前:MySQLの設定

# 接続先はDocker Composeのサービス名です。
#spring.datasource.url=jdbc:mysql://db:3306/demo?serverTimezone=JST
#spring.datasource.username=${MYSQL_USER}
#spring.datasource.password=${MYSQL_PASSWORD}
#spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

変更後:H2の設定

spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:./h2db
spring.datasource.username=hoge
spring.datasource.password=pass
spring.jpa.show-sql=true
spring.datasource.sql-script-encoding=UTF-8
spring.h2.console.enabled=true
#初期化しない
spring.datasource.initialization-mode=never
#常にデータソースを初期化する
#spring.datasource.initialization-mode=always

今回は H2データベースはファイル保存型として設定し、最初にWebアプリを起動するときだけ

spring.datasource.initialization-mode=always

を有効にして初期化処理(初期スキーマ(テーブル等)作成「schema.sql」と初期レコードの追加「data.sql」のSQLを実行)を行い

2回目以降は

spring.datasource.initialization-mode=never

を有効にしてデータベースを初期化しない使い方をしました。

サイド初期化したい場合は、h2db.xxx.db ファイル(xxxは任意の文字列)を削除してから

spring.datasource.initialization-mode=always

を有効にしてWebアプリを起動すればよい。

初期スキーマ(テーブル等)作成「schema.sql」は

CREATE TABLE inquiry (
id INT NOT NULL AUTO_INCREMENT,
name CHAR(30) NOT NULL,
mail CHAR(128) NOT NULL,
content TEXT NOT NULL,
PRIMARY KEY (id)
);

初期レコードの追加「data.sql」は

INSERT INTO inquiry (name, mail, content) VALUES 
('鈴木 太郎', 't.suzuki@example.com', '100人くらいで貸し切りできますか?'), 
('佐藤 花子', 'h.sato@example.com', '予算に応じてコースの相談はできますか?');

としました。

また、WebブラウザからH2データベースの操作を行うことが出来る「H2-console」を使用するには

spring.h2.console.enabled=true

を記述してください。phpMyAdminのようなもの。

 

プロジェクトに「H2 Database」を追加することを忘れないようにしてください。