Hibernate 持久化類
hibernate 持久化類
hibernate 的完整概念是提取 java 類屬性中的值,并且將它們保存到數據庫表單中。
映射文件能夠幫助 hibernate 確定如何從該類中提取值,并將它們映射在表格和相關域中。
在 hibernate 中,其對象或實例將會被存儲在數據庫表單中的 java 類被稱為持久化類。
若該類遵循一些簡單的規則或者被大家所熟知的 plain old java object (pojo) 編程模型,hibernate 將會處于其最佳運行狀態。以下所列就是持久化類的主要規則,然而,在這些規則中,沒有一條是硬性要求。
- 所有將被持久化的 java 類都需要一個默認的構造函數。
- 為了使對象能夠在 hibernate 和數據庫中容易識別,所有類都需要包含一個 id。此屬性映射到數據庫表的主鍵列。
- 所有將被持久化的屬性都應該聲明為 private,并具有由 javabean 風格定義的 getxxx 和 setxxx 方法。
- hibernate 的一個重要特征為代理,它取決于該持久化類是處于非 final 的,還是處于一個所有方法都聲明為 public 的接口。
- 所有的類是不可擴展或按 ejb 要求實現的一些特殊的類和接口。
pojo 的名稱用于強調一個給定的對象是普通的 java 對象,而不是特殊的對象,尤其不是一個 enterprise javabean。
一個簡單的 pojo 的例子
基于以上所述規則,我們能夠定義如下 polo 類:
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; } }