Hibernate 简明教程
Hibernate - Persistent Class
Hibernate 的整个概念是获取 Java 类属性中的值,并将它们持久化到数据库表中。映射文档帮助 Hibernate 确定如何从类中提取值,并将其与表和关联字段进行映射。
在数据库表中存储其对象或实例的 Java 类在 Hibernate 中称为持久类。如果这些类遵循一些简单规则,Hibernate 就能很好地工作,这些规则也称为 Plain Old Java Object (POJO) 编程模型。
以下为持久类的主要规则,但其中没有一项属于硬性要求:
-
所有将被持久化的 Java 类都需要一个默认构造函数。
-
所有类都应包含一个 ID,以便在 Hibernate 和数据库中轻松识别对象。此属性映射到数据库表的基准密钥列。
-
所有将被持久化的属性应声明为私有的,并以 JavaBean 样式定义 getXXX 和 setXXX 方法。
-
Hibernate 的中心功能代理取决于持久类是非 final 的,或者声明所有公共方法的接口的实现。
-
所有没有扩展或实现 EJB 框架所需的一些专门类和接口的类。
POJO 名称用于强调给定对象是普通的 Java 对象,而不是特殊对象,特别是不是 Enterprise JavaBean。
Simple POJO Example
基于以上提到的几个规则,我们可以如下定义一个 POJO 类:
public class Employee {
private int id;
private String firstName;
private String lastName;
private int salary;
public Employee() {}
public Employee(String fname, String lname, int salary) {
this.firstName = fname;
this.lastName = lname;
this.salary = salary;
}
public int getId() {
return id;
}
public void setId( int id ) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName( String first_name ) {
this.firstName = first_name;
}
public String getLastName() {
return lastName;
}
public void setLastName( String last_name ) {
this.lastName = last_name;
}
public int getSalary() {
return salary;
}
public void setSalary( int salary ) {
this.salary = salary;
}
}