📜  Hibernate-持久类(1)

📅  最后修改于: 2023-12-03 15:15:31.663000             🧑  作者: Mango

Hibernate-持久类

什么是Hibernate

Hibernate是一个流行的开源ORM(对象关系映射)框架,使操作数据库变得更加容易,并且对于大多数Java应用程序都很有用。Hibernate基于Java,可以将Java对象映射到数据库表中,使开发人员可以使用Java编写用于操作数据库的代码而不必使用SQL查询。

什么是持久化

在计算机科学中,持久化是指将程序数据存储到非易失性存储设备(例如硬盘)中以使其在程序结束后仍然存在的能力。在ORM中,持久性是将Java对象持久保存到数据库中并从数据库检索的过程。

Hibernate持久化类

Hibernate的持久化类是Java类,其状态与数据库表中的记录相关联。持久化类实例在Hibernate Session中被加载,可以对其进行读取、更新、删除操作。持久化类必须满足以下条件:

  1. 类必须被映射到数据库表。
  2. 必须存在一个具有持久标识符的属性,可以使用Hibernate提供的注解或XML映射进行标记。
  3. 类必须具有一个默认构造函数。

下面是一个示例Hibernate持久化类:

@Entity
@Table(name = "users")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(name = "email", nullable = false)
    private String email;

    @Column(name = "password", nullable = false)
    private String password;

    @Column(name = "created_at", nullable = false)
    private LocalDateTime createdAt;

    // getters and setters
}

这个持久化类表示数据库中的users表。类被注释为实体(@Entity),并与表名称相关联(@Table)。属性id被注释为标识符(@Id),并使用@GeneratedValue指定如何生成标识符。其他属性具有相应的列名称和Hibernate注解(@Column)指定的数据类型。

如何使用Hibernate持久化类

在Hibernate中,可以使用Session来执行与持久化类相关的操作,例如添加、更新、删除和查询。以下是一个简单的示例:

Session session = HibernateUtil.getSessionFactory().openSession();

// create a new user
User user = new User();
user.setEmail("john@example.com");
user.setPassword("strong_password");
user.setCreatedAt(LocalDateTime.now());

// save the user to the database
session.beginTransaction();
session.save(user);
session.getTransaction().commit();

// retrieve a user from the database
User savedUser = session.get(User.class, user.getId());

// update user's email
savedUser.setEmail("new_email@example.com");
session.beginTransaction();
session.update(savedUser);
session.getTransaction().commit();

// delete user from the database
session.beginTransaction();
session.delete(savedUser);
session.getTransaction().commit();

session.close();

在这个示例中,首先通过调用HibernateUtil.getSessionFactory().openSession()获得Session的实例。然后,创建一个新的User对象,将其保存到数据库。随后,从数据库中检索用户并更新其电子邮件地址。最后,删除该用户。

总结

Hibernate使处理数据库变得更加容易和方便。持久化类作为Java对象和数据库之间的桥梁,在Hibernate中扮演着重要的角色。本文介绍了Hibernate持久化类的概念和用法,帮助开发人员更好地理解和使用Hibernate。