はじめに
目的
本記事はJava・Spring Bootの基礎知識を体系的に学び、生成AIに頼りすぎず自力でコーディングできるようになることを目的としています。
学んだ内容のアウトプットとして、シリーズ形式で書いていきます。
ゴール
- Java・Spring BootでWebアプリのバックエンドAPIを個人開発する
- チーム開発でタスクを渡された際に、メンバーのコードを読んで理解したり自分で実装したりできる状態にする(調べる回数をできるだけ少なくする)
MVCモデルとは
Webシステムのアーキテクチャ(構成・構造)の一種。
プログラムを
Model(データベースとの通信・データの加工など)
View(画面表示)
Controller(Model, Viewへ指示を出す処理の司令塔)
の3層に分けて実装する。
Entityとは
広い意味では「実体」。
JavaのMVCモデルにおいては、テーブルをJavaクラスとして表現したもののこと。
1つのレコードが1つのフィールドに対応し、クラスのフィールドがテーブルのカラム(列)にマッピングされる。
Entityを使うメリット
- SQLを書かずに、Javaオブジェクトとしてデータを操作できる
- テーブル構造をアノテーションで簡単に反映できるので、保守性が向上する
- クラスとフィールドでデータを扱うため、型チェックができる
サンプルコード
@Entity
public class User {
@Id
@GeneratedValue
private Long id;
@Column(unique = true, nullable = false)
private String name;
@Column(unique = true, nullable = false)
private String email;
//Constructor, Getter, Setterを記述
}
@Entity:クラスをJPAエンティティとして指定し、DBのテーブルと対応することを示す。
@Id:エンティティの主キー(Primary Key)を指定。
@GeneratedValue:主キーの値を自動生成する方法を指定。DBMSごとに適切な設定が違うようなので注意。
@Column:DBのカラム(行)とクラスのフィールドをマッピングする。
unique = trueは一意制約、nullable = falseはNOT NULL制約を表す。