欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > Java基础-22-基本语法-实体类

Java基础-22-基本语法-实体类

2025/4/16 22:41:24 来源:https://blog.csdn.net/2301_77312064/article/details/146717818  浏览:    关键词:Java基础-22-基本语法-实体类

实体类(Entity Class)

1. 什么是实体类?

实体类(Entity Class) 是 Java 中用于表示数据库表结构或业务对象的类。它通常包含属性(字段)getter/setter 方法,用于存储和操作数据。实体类是面向对象编程(OOP)与数据库之间的桥梁,常用于 Java Web 开发和 ORM(对象关系映射)框架(如 Hibernate、MyBatis)中。


2. 实体类的特点

  1. 属性私有化(使用 private 关键字修饰)。

  2. 提供 getter 和 setter 方法,用于外部访问和修改属性值。

  3. 通常包含无参构造方法,以便反射或框架使用。

  4. 可使用 toString() 方法 方便调试。

  5. 可实现 Serializable 接口,用于对象的序列化。

  6. 可能会使用注解(如 @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 修饰成员变量,保证封装性。

  • 提供 gettersetter 方法,外部可以安全访问和修改数据。

  • 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. 实体类的优点

  1. 封装数据:将数据和行为封装在类中,符合 OOP 设计原则。

  2. 提高代码复用性:实体类可以在多个模块中使用。

  3. 方便 ORM 框架管理数据库:如 Hibernate、MyBatis。

  4. 便于维护:结构清晰,易于管理。


6. 适用场景

  1. Java Web 开发:如 Spring Boot 结合 JPA、Hibernate 进行数据库操作。

  2. 数据传输:实体类用于存储和传输数据(如 JSON、XML 解析)。

  3. 微服务架构:用于 DTO(数据传输对象),实现数据封装。

  4. 缓存管理:实体类可存入 Redis 进行缓存管理。


7. 总结

实体类是 Java 开发中的重要组成部分,它用于表示数据库中的数据结构,并与 ORM 框架配合,实现对象与数据库表的映射。通过封装属性、提供 getter/setter 方法,我们可以更好地管理数据,提高代码的安全性和可维护性。

掌握实体类的设计原则,在实际项目中正确使用,可以让你的代码更加规范、高效!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词