LoginSignup
1
1

More than 3 years have passed since last update.

SpringBootでグループウェアの開発②〜DB接続〜

Last updated at Posted at 2020-01-21

DB接続

前回は環境構築をして、HelloWorldを表示するところまで実施しました。今回はDB接続をして、新規登録機能を完成させることを目標に取り組もうと思います。

DB関連の設定

MySQL8.0を起動

前回作成したMySQLのコンテナを起動する。

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS                               NAMES
be628a63358d        mysql:8.0           "docker-entrypoint.s…"   22 hours ago        Exited (0) 16 seconds ago                                       mygroupware_db_1
$ docker start be628a63358d
be628a63358d
$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
be628a63358d        mysql:8.0           "docker-entrypoint.s…"   22 hours ago        Up 9 seconds        33060/tcp, 0.0.0.0:3304->3306/tcp   mygroupware_db_1

ユーザーテーブル作成

SQLクライアントツールでMySQLに接続して、以下のデータベースとテーブルを作成。自分はworkbenchを使ってる。

--データベース作成
CREATE DATABASE mygroupwere;
--testユーザにmygroupwere内での権限付与。次回からはテストユーザで作業する。
GRANT ALL ON mygroupwere.* TO test;
--ユーザーテーブルを作成する。idとupdated_atは自動で設定。
USE mygroupwere;
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
name TEXT NOT NULL,
password TEXT NOT NULL,
role TEXT NOT NULL,
updated_at datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)DEFAULT CHARACTER SET=utf8;

application.propertiesの編集

application.properties
spring.datasource.url=jdbc:mysql://localhost:3304/mygroupwere
spring.datasource.username=test
spring.datasource.password=test
spring.datasource.driverClassName=com.mysql.jdbc.Driver

build.gradleを編集

mvnrepositoryから、mysqlを検索して、以下のように依存関係を追加。

build.gradle
plugins {
    id 'org.springframework.boot' version '2.2.3.RELEASE'
    id 'io.spring.dependency-management' version '1.0.8.RELEASE'
    id 'java'
}

group = 'rsrepo.groupware'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

configurations {
    developmentOnly
    runtimeClasspath {
        extendsFrom developmentOnly
    }
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    annotationProcessor 'org.projectlombok:lombok'
    implementation 'mysql:mysql-connector-java'    // 追加
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
}

test {
    useJUnitPlatform()
}

ユーザーモデルを作成

User.java
package パッケージ名.プロジェクト名.domain.model.entity;

import java.util.Date;

import lombok.Data;

@Data
public class User {
    private String id; // ID
    private String name; // ユーザー名
    private String password; // パスワード
    private String role; // ロール
    private Date updated_at; // 更新日時
}

いい時間になってしまったので、今日はここまでで終了!
次回はDB接続の続きから始めます。
SpringBootでグループウェアの開発①〜環境構築〜
SpringBootでグループウェアの開発③〜DB接続の続き〜
GitHub:MyGroupware

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1