實體類(Entity Class)
1. 什么是實體類?
實體類(Entity Class) 是 Java 中用于表示數據庫表結構或業務對象的類。它通常包含屬性(字段)和getter/setter 方法,用于存儲和操作數據。實體類是面向對象編程(OOP)與數據庫之間的橋梁,常用于 Java Web 開發和 ORM(對象關系映射)框架(如 Hibernate、MyBatis)中。
2. 實體類的特點
-
屬性私有化(使用
private
關鍵字修飾)。 -
提供 getter 和 setter 方法,用于外部訪問和修改屬性值。
-
通常包含無參構造方法,以便反射或框架使用。
-
可使用
toString()
方法 方便調試。 -
可實現
Serializable
接口,用于對象的序列化。 -
可能會使用注解(如
@Entity
、@Table
、@Id
等)以便與數據庫表映射。
3. 實體類的基本寫法
3.1. 標準 Java 實體類
public class User {private int id;private String name;private int age;// 無參構造方法public User() {}// 全參構造方法public User(int id, String name, int age) {this.id = id;this.name = name;this.age = age;}// Getter 和 Setter 方法public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}// 重寫 toString 方法,方便輸出對象信息@Overridepublic String toString() {return "User{" +"id=" + id +", name='" + name + '\'' +", age=" + age +'}';}
}
說明:
-
private
修飾成員變量,保證封裝性。 -
提供
getter
和setter
方法,外部可以安全訪問和修改數據。 -
toString()
方法用于打印對象的詳細信息。 -
需要時可添加構造方法,方便創建對象。
3.2. 使用實體類
public class TestUser {public static void main(String[] args) {// 使用無參構造方法創建對象User user1 = new User();user1.setId(1);user1.setName("張三");user1.setAge(25);// 使用全參構造方法創建對象User user2 = new User(2, "李四", 30);// 輸出對象信息System.out.println(user1);System.out.println(user2);}
}
運行結果:
User{id=1, name='張三', age=25}
User{id=2, name='李四', age=30}
4. 實體類與數據庫的映射(JPA 示例)
如果實體類用于數據庫存儲,可以使用 JPA(Java Persistence API) 進行映射:
import javax.persistence.*;
import java.io.Serializable;@Entity // 指定這是一個實體類
@Table(name = "users") // 對應數據庫表 "users"
public class User implements Serializable {@Id // 指定主鍵@GeneratedValue(strategy = GenerationType.IDENTITY) // 主鍵自增private int id;@Column(name = "name", nullable = false, length = 50) // 映射字段private String name;@Column(name = "age", nullable = false)private int age;// 無參構造public User() {}// 構造方法public User(String name, int age) {this.name = name;this.age = age;}// Getter 和 Setter 方法public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}
}
解釋:
-
@Entity
:聲明這是一個 JPA 實體類。 -
@Table(name = "users")
:指定映射的數據庫表名。 -
@Id
:標識主鍵。 -
@GeneratedValue(strategy = GenerationType.IDENTITY)
:使用數據庫自增主鍵策略。 -
@Column
:指定數據庫字段屬性。 -
Serializable
接口:支持對象序列化。
5. 實體類的優點
-
封裝數據:將數據和行為封裝在類中,符合 OOP 設計原則。
-
提高代碼復用性:實體類可以在多個模塊中使用。
-
方便 ORM 框架管理數據庫:如 Hibernate、MyBatis。
-
便于維護:結構清晰,易于管理。
6. 適用場景
-
Java Web 開發:如 Spring Boot 結合 JPA、Hibernate 進行數據庫操作。
-
數據傳輸:實體類用于存儲和傳輸數據(如 JSON、XML 解析)。
-
微服務架構:用于 DTO(數據傳輸對象),實現數據封裝。
-
緩存管理:實體類可存入 Redis 進行緩存管理。
7. 總結
實體類是 Java 開發中的重要組成部分,它用于表示數據庫中的數據結構,并與 ORM 框架配合,實現對象與數據庫表的映射。通過封裝屬性、提供 getter/setter 方法,我們可以更好地管理數據,提高代碼的安全性和可維護性。
掌握實體類的設計原則,在實際項目中正確使用,可以讓你的代碼更加規范、高效!