JavaでWebアプリ制作を学習してみよう。- MySQL CentOS7 on VirtualBox データベースに接続 –
前回は Spring Boot でデータベースを使用する際の概念(仕組み)を学びました。
要は
- Repositoryでデータベースを操作するメソッドを記述する。SQL問い合わせ。
- データベース内のテーブル構成をEntityに記述する。
- データベースライブラリを pom.xml(Maven) 又は build_gradle(Gradle) ファイルに登録する。
- データベースの接続パラメータを application.propertiesファイル に記述する。
がポイントです。JDBC APIライブラリはちょっと例外のようだが。。。
今回は Spring Boot で MySQLを使ってデータベースのへのデータ登録と表示を具体的にやってみることにした。
データベースに MySQL を使いたい。これまでPHP(Laravel含む)のWebアプリ作成で MySQL を使っていたため。
しかし、MySQLをWindows10に入れたくない。VirtualBox上のCentOS7の動かしているMySQLを使いたい。
なんでこんな感じの構成を考え試すことに。
TeraTermでCentOS7に接続してMySQLにデータベースとユーザ、テーブル、サンプルでコードを追加。
$ sudo mysql -u root -p
CREATE DATABASE testdb;
CREATE USER hoge@'localhost' IDENTIFIED BY 'hoge';
GRANT ALL PRIVILEGES ON testdb.* TO hoge@'192.168.1.0/255.255.255.0 IDENTIFIED BY 'hoge';
GRANT ALL PRIVILEGES ON testdb.* TO hoge@'localhost';
use testdb;
CREATE TABLE user (id int, name varchar(20), email varchar(255));
SHOW COLUMNS FROM user;
INSERT INTO user (id, name, email) VALUES (1, '山田 太郎', 't.yamada@exsample.com');
INSERT INTO user (id, name, email) VALUES (2, '高橋 次郎', 'g.takahashi@exsample.com');
sts4にSpring Boot Appを新規作成してapplication.propertiesファイルにMySQL接続設定、Controller、Repository、Entityを作成。
application.propertiesファイル
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mysql://192.168.1.244:3306/testdb
spring.datasource.username=hoge
spring.datasource.password=hoge
そして実際に動かした。以外にあっさりと動いた。