hibernate實體對象數據庫生成
首先,我們先要理解一下相關知識點:
1、對象的序列化:Serializable
對象序列化是對象永久化的一種機制,可以把序列化當成一種深度克隆的方法,確切的說應該是對象的序列化,一般程序在運行時,產生對象,這些對象隨著程序的停止運行而消失,但如果我們想把某些對象(因為是對象,所以有各自不同的特性)保存下來,在程序終止運行后,這些對象仍然存在,可以在程序再次運行時讀取這些對象的值,或者在其他程序中利用這些保存下來的對象。這種情況下就要用到對象的序列化。一般對象序列化后會保存在存儲設備(硬盤)上,以文件的形式出現。
2、CRUD
CRUD是增加、讀取、更新和刪除幾個單詞的首字母簡寫 即Create,Read,Update,Delete四個單詞的縮寫,主要被用在描述軟件系統中數據庫或者持久層的基本操作功能。
(In computing, CRUD is an acronym for
create, retrieve, update, and delete. It is used to refer to the basic
functions of a database or persistence layer in a software system.)
在進行Hibernate開發過程中,我們通常會使用DAO模式,有一些通用的數據操作方法,如CRUD,我們通常會將這些方法集中在一個DAO,這樣會簡便很多。DAO數據訪問接口如下:
import java.util.Collection;
import java.util.List;
import java.util.Map;
public interface Dao {
List getObjects(Class clazz);//返回數據庫中與此類對應的表的所有值,即entity類型中的所有信息
Object getObject(Class clazz, Serializable id);//返回與此類對應的表主鍵為id的所有值
Serializable saveObject(Object o);//序列化保存對象。
void updateObject(Object o);//更新此對象
void removeObject(Class clazz, Serializable id);//根據數據庫中與此類對應表的主鍵(id)刪除此對象
void removeObject(Object o);//刪除此對象
void removeObjects(Collection objects);
/*
* 根據屬性名和屬性值查詢對象,返回唯一對象
*/
Object findBy(Class clazz, String name, Object value);
/*
* 根據屬性名和屬性值查詢對象,返回所以符合條件的對象
*/
List findAllBy(Class clazz, String name, Object value);
/**
* 根據Map中過濾條件和分頁參數查詢.
*
* @param filter 過濾條件.
* @param sortMap 排序條件.
* @param pageNo 當前頁碼
* @param pageSize 每頁顯示記錄數.
*/
List findAllBy(Class clazz, Map filter, Map sorMap, int pageNo, int pageSize);
/**
* 符合filter過濾條件的記錄總數
* @param clazz
* @param filter
* @return
*/
int total(Class clazz, Map filter);
}