Spring Boot + JPAのプロジェクトを作成し、ローカルサーバーで起動する。
Keywords
Contents
- 1. spring initializr
- 2. IntelliJ IDEAで開く
- 3. Gradle起動
- 4. Java起動
- 5. DockerでMySQLを立ち上げる
- 6. IntelliJ IdeaのDBクライアント設定
- 7. schema作成
- 8. DBの設定
- 9. Java起動
spring initializr
spring initializrを使用して、土台となるコードベースを作成。
- Gradle Project
- Java
- 2.2.6
- Jar
- 14
IntelliJ IDEAで開く
GENERATEボタンをクリックすると、zipファイルがダウンロードされるので、それを解凍し、IntelliJ IDEAで開く。
Gradle起動
下記のエラーが出た場合は、JDKを選択。
ここでJDKを選択する。もしない場合は、JDKを入れておく。 JDKはSDKMAN!でインストールするのがお勧めです。SDKMAN!については、こちらの記事を参考にしてください。
Java起動
ここではデータベースの設定をしていないので、エラーが出る。
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
DockerでMySQLを立ち上げる
下記の情報でmysqlのコンテナを立ち上げる。
コンテナ名: spring-demo-mysql ホストのport: 13306 MySQLのバージョン: 5.7 rootのパスワード: password
docker run --name spring-demo-mysql -e MYSQL_ROOT_PASSWORD=password -p 13306:3306 -d mysql:5.7
IntelliJ IdeaのDBクライアント設定
IntelliJ IdeaのDBクライアントツールから、DockerのMySQLに接続する。
driverが必要な場合はいれる。
schema作成
スキーマ名はdemo、collationはutf8mb4_general_ci
Refresh
テーブル作成
Userテーブルを作っておく。
DBの設定
spring-demo/src/main/resources/application.properties
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:13306/demo
spring.datasource.username=root
spring.datasource.password=password
Java起動
今回はエラーは出力されない。
package com.example.springdemo;
import org.springframework.data.domain.AbstractAggregateRoot;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="user")
public class User {
@Id
@Column(name="user_id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Long userId;
private String name;
public Long getUserId() {
return this.userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public void test(){
registerEvent(new EventMessage());
}
}