📅  最后修改于: 2023-12-03 15:15:31.663000             🧑  作者: Mango
Hibernate是一个流行的开源ORM(对象关系映射)框架,使操作数据库变得更加容易,并且对于大多数Java应用程序都很有用。Hibernate基于Java,可以将Java对象映射到数据库表中,使开发人员可以使用Java编写用于操作数据库的代码而不必使用SQL查询。
在计算机科学中,持久化是指将程序数据存储到非易失性存储设备(例如硬盘)中以使其在程序结束后仍然存在的能力。在ORM中,持久性是将Java对象持久保存到数据库中并从数据库检索的过程。
Hibernate的持久化类是Java类,其状态与数据库表中的记录相关联。持久化类实例在Hibernate Session中被加载,可以对其进行读取、更新、删除操作。持久化类必须满足以下条件:
下面是一个示例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中,可以使用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。