Spring Bootプロジェクト作成　個人的テンプレート

初めてのMacでの環境構築ということで記録を残す。

# JPAでmysqlに繋げる構成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384409/12e9a611-14f4-4a58-99f8-717ecdef5e3d.png)

generateで生成しダウンロードする
eclipseから解凍したプロジェクトフォルダをプロジェクトをインポートする
実行＞spring bootで実行する
（※実行項目なければeclipseのマーケットからspring　STSを導入する）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384409/29a8a3d8-d5c1-c59a-4798-5cdf19088e19.png)

以下のようなエラーが出るので、mysql接続設定をする。
```
2022-05-30 19:42:37.006  INFO 65970 --- [  restartedMain] ConditionEvaluationReportLoggingListener : 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2022-05-30 19:42:37.020 ERROR 65970 --- [  restartedMain] o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
APPLICATION FAILED TO START
***************************

Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class


Action:

Consider the following:
	If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
	If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).
```

Macでのmysqlインストール方法参考
途中で入力求められるパスワードはPCのログインパス
https://prog-8.com/docs/mysql-env

DB作成
参考：https://spring.pleiades.io/guides/gs/accessing-data-mysql/
```
mysql> create database db_example; -- Creates the new database
mysql> create user 'springuser'@'%' identified by 'ThePassword'; -- Creates the user
mysql> grant all on db_example.* to 'springuser'@'%'; -- Gives all privileges to the new user on the newly created database
```

コントローラー
```Rest.java
@RestController
public class Rest {

	// test
	@GetMapping("/test")
	public String test() {
		System.out.println("testAPI受信");
		return "成功";
	}
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384409/6f8d9e3c-fc58-3f25-43b1-1a25415fb175.png)


# JPAでDBからエンティティの自動生成
JPAでDBからエンティティの自動生成ができることを思い出し気になったのでやってみた。

eclipseでのツール検索時はHiberneteと打っても表示されなかった。Jbossと入力するといい。

https://urashita.com/archives/32557

該当プロジェクト右クリック→新規→その他→JPA→JPA Entities from Tables
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384409/8a5a1a52-0573-5d42-f54b-82932525c763.png)

右上のボタンをクリックし、mysqlを選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384409/72bb75e1-dbd1-a7dd-c92a-d8b5955b13b4.png)

青いボタンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384409/c091fe85-b275-3782-4410-ceb9914fbb77.png)

任意のverを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384409/91d3e7b3-ef59-f49e-8bb2-c0da3059c041.png)

JAR LIstタグを選択。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384409/47565833-1a2e-2b81-bb06-933acd68f468.png)

mysql-connectorがないと言われるので入れる。
以下よりインストール

https://downloads.mysql.com/archives/c-j/

Addでインストールしたものを追加する。元からあった5.1.0は削除する（じゃないと永遠とエラーでOKが押せない）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384409/3fa27e8a-db34-ecd2-e535-6eb64a3ae72f.png)


databaseやパスワードを入れ、Saveにチェック。
Connect when~にチェック。
Test Connectionしてsuccessted！的なワードが出たら、Finish
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384409/e2615a34-f740-5a60-f80a-a463bec71d88.png)

スキーマを選択し、生成するテーブルを選択する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384409/43986828-e86a-8bda-9ec6-3af1de17ac06.png)

テーブル生成の詳細は以下参考。

http://www.ytp.ne.jp/wiki/Wiki.jsp?page=JPA%E3%81%AB%E3%82%88%E3%82%8B%E3%82%A8%E3%83%B3%E3%83%86%E3%82%A3%E3%83%86%E3%82%A3%E3%82%AF%E3%83%A9%E3%82%B9%E3%81%AE%E8%87%AA%E5%8B%95%E7%94%9F%E6%88%90

テーブル関係の設定？今回は1テーブルしか作成していないので、パスして次へ。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384409/042818ed-0dbd-43dc-2222-dabbdcfb6904.png)

参考サイトの通り入力しFinish
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384409/c986463c-7c13-782a-dee8-a2f5f392edbc.png)

persistence.xmlと選択したテーブルのエンティティが作成された。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384409/4fde7824-962f-b850-55ca-a2cb883f0f8b.png)