
Javaでよく聞く言葉で、
Controller,、Service、Repository(、Dao)(、DTO)、Entity
があると思います。
オブジェクト指向では必須です。
今回はその中でも、Entity(エンティティ)について、サンプルコードを交えて
ご説明していきます。
Entity(エンティティ)とは?
Entityとは、データベースのテーブルそのもののことです。
厳密には、テーブルデータ1つ1つのことです。
ちなみにEntityは日本語で「実体」という意味です。
クラスを作成するときは、プロジェクトにもよるかとは思いますが、
テーブル名をクラス名に、フィールド各種はカラム名で、型も対応させれば
大丈夫です。
型に関しては、JavaとDBで対応させる必要がありますので、ご注意ください。
型について、詳しくはこちらのサイトをご覧ください。
メソッドは、フィールドそれぞれのGetterとSetterを生成するだけでEntityクラス完成です。
と、上記のようなことを言ってもイメージが湧きにくいかと思いますので、
サンプルコードで確認していきましょう。
以下では、サンプルコードのみと、
このサンプルコードのEntityクラスの作成手順を説明しているところに
分けています。
サンプルコード
環境
DB定義
CREATE DATABASE ENTITY_TEST;
テーブル定義
CREATE TABLE ENTITY_TEST_TABLE
(id INT NOT NULL
,full_name VARCHAR(255) NULL
,insert_date INT NULL
,PRIMARY KEY (id));
テーブルデータ
INSERT INTO ENTITY_TEST_TABLE (id, full_name ,insert_date) VALUES (1, 'エンティティ ダンプティ', 20240418);
INSERT INTO ENTITY_TEST_TABLE (id, full_name ,insert_date) VALUES (2, 'エンティティ ティティ', 20240418);
INSERT INTO ENTITY_TEST_TABLE (id, full_name ,insert_date) VALUES (3, 'エンティティ えん', 20240418);
INSERT INTO ENTITY_TEST_TABLE (id, full_name ,insert_date) VALUES (4, 'エンティティ ダ ヴィンチ', 20240418);
Entityクラスファイル
public class Entity {
private int id;
private String full_name;
private int insert_date;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFull_name() {
return full_name;
}
public void setFull_name(String full_name) {
this.full_name = full_name;
}
public int getInsert_date() {
return insert_date;
}
public void setInsert_date(int insert_date) {
this.insert_date = insert_date;
}
}
Entityクラス作成手順
上記のサンプルコードを作成する手順をご説明します。
プロジェクトの作成は省略します。
クラスファイル作成
まずはクラスファイルを作成します。
作成したいフォルダの上で右クリックをして新規→その他を選択します。

Java→クラス→次へ
を選択。

名前を入力し、
スーパークラスにjava.lang.Objectがデフォルトで入っているので、削除し
完了をクリック。

すると、クラスが作成されます。

クラスの内容については、こちらより。
データベース作成
今回はコマンド(ターミナル)にてMy SQLを使用して作成していきます。
まずはログインします。(ログインの過程は省略します)
そして以下のコマンドを実行します。
mysql> source /ルートディレクトリ/CREATE_DATABASE_ENTITY_TEST.sql;
その後、
mysql> show databases;
を実行すると、

きちんとデータベースが作成されているのが確認取れます。
テーブル作成
まずはデータベースを選択します。
mysql> use ENTITY_TEST;
あとは、データベース作成と同様です。
mysql> source /ルートディレクトリ/CREATE_TABLE_ENTITY_TEST_TABLE.sql;
mysql> show tables;

これでテーブル作成までできました。
データ挿入
ほぼ同じです。
mysql> source /ルートディレクトリ/INSERT_DATA.sql;
mysql> select * from ENTITY_TEST_TABLE;

データの挿入まで確認できました。
これらのデータ1つ1つがEntityです!
Entity作成
Javaとデータベースの型を対応させて、
クラスのカラム名をフィールド名に設定します。

修飾子はprivateで設定します。
その後、GetterとSetterを生成します。
生成の仕方として、Lombokのアノテーションを用いて設定する方法もありますが、
今回はEclipseの機能を用いて、設定します。
上のタブの「ソース」を選択します。
その中の「getterおよびsetterの生成…」を選択します。

すると、どのフィールのに対してGetterとSetterを生成するのかの
画面が出ます。
今回はすべて生成したいので、すべて選択します。

そして生成を押すと、
選択したフィールドのGetterとSetterが自動生成されます。

少しフォーマットを整えたら、
Entityクラスの生成完了です。
このクラスのインスタンスを生成し、
1つ1つのデータの値を詰めていくことになります。
ちなみにフォーマットは
macの場合、cmd + shift + f
windowsの場合、ctrl + shift + f
で自動フォーマットされます。
自動フォーマットよく使うため、
覚えておくべきショートカットキーです。
他のショートカットキーが気になる方は、
こちらの記事もご覧ください。
Entityクラスは、Spring Data JDBCやSpring Data JPA、
JdbcTemplateなどで使用します。
これらの記事も合わせてご覧ください。
参考サイト