摘要
Hibernate是對象關係映射框架,是對jdbc進行了非常輕量級的對象封裝,是一個全自動的orm框架。
Hibernate的API一共有6個,分別爲:Session、SessionFactory、Transaction、Query、Criteria和Configuration。通過這些接口,可以對持久化對象進行存取、事務控制。
- Session:負責執行被持久化對象的CRUD操作
- SessionFactory:負責初始化Hibernate。它充當數據存儲源的代理,並負責創建Session對象
- Transaction:對實際事務實現的一個抽象
- Query:對數據庫及持久對象進行查詢,它可以有兩種表達方式:HQL語言或本地數據庫的SQL語句。Query經常被用來綁定查詢參數、限制查詢記錄數量,並最終執行查詢操作
- Criteria:創建並執行面向對象的標準化查詢
- Configuration:對Hibernate 進行配置,以及對它進行啓動。在Hibernate 的啓動過程中,Configuration 類的實例首先定位映射文檔的位置,讀取這些配置,然後創建一個SessionFactory對象。雖然Configuration 類在整個Hibernate 項目中只扮演着一個很小的角色,但它是啓動hibernate 時所遇到的第一個對象
Hibernate狀態
hibernate有三種狀態,transient(臨時狀態)、persistent(持久化狀態)、detached(離線狀態)
transient:對象已經實例還沒有被保存到數據庫
persistent:對象已經保存到數據庫
detached:數據庫中有,但是session中不存在該對象
1.臨時狀態調用save方法,或者離線狀態調用update方法可以使該對象變成持久化狀態
2.如果對象是持久化對象時,那麼對該對象的任何修改,都會在提交事務時纔會與之進行比較,如果不同,則發送一條update語句,否則就不會發送語句
3.對臨時狀態進行各種修改操作的話,hibernate也不會發送任何的修改語句