Hibernate學習:初識hibernate
一:S2SH框架流程圖
hibernate的作用就是在Dao層將model的資料持久化到DB資料庫。
這幅圖上沒有標記spring,
其實spring貫穿整個過程:
spring面向介面程式設計:
spring將service注入到Action,
spring將dao注入到service
spring針對servic進行宣告式的事務管理。
二:單獨看hibernate
hibernate的工作原理:
step1:建立Configuration:進行配置檔案的裝載操作,提取所有配置檔案進行解析。
step2:建立SessionFactory物件:託尼各國建立好的Configurtation物件可以建立一個sessionFactory物件的例項,他是產生Session物件例項的工廠,它在整個應用中應該是唯一的。
step2:建立Session物件:Session物件類似於資料庫的連線物件,可以理解為於資料庫建立的一個連線,但他的功能比JDBC重的Connection的物件豐富很多。
step4開始一個事物 在Java中定義一個事物操作的開始,這是使用Hibernate進行持久化操作必不可少的步驟。
step5 進行持久化操作,在這個步驟中可以讀取或者儲存java物件。
step6 結束事物 顯示的結束事物
step 7關不Session ,類似於釋放資料庫的連線。
三:hibernate的優點和缺點
Hibernate優點
(1) 物件/關聯式資料庫對映(ORM)
它使用時只需要操縱物件,使開發更物件化,拋棄了資料庫中心的思想,完全的物件導向思想
(2) 透明持久化(persistent)
帶有持久化狀態的、具有業務功能的單執行緒物件,此物件生存期很短。這些物件可能是普通的JavaBeans/POJO,這個物件沒有實現第三方框架或者介面,唯一特殊的是他們正與(僅僅一個)Session相關聯。一旦這個Session被關閉,這些物件就會脫離持久化狀態,這樣就可被應用程式的任何層自由使用。(例如,用作跟表示層打交道的資料傳輸物件。)
(3) 事務Transaction(org.hibernate.Transaction)
應用程式用來指定原子操作單元範圍的物件,它是單執行緒的,生命週期很短。它通過抽象將應用從底層具體的JDBC、JTA以及CORBA事務隔離開。某些情況下,一個Session之內可能包含多個Transaction物件。儘管是否使用該物件是可選的,但無論是使用底層的API還是使用Transaction物件,事務邊界的開啟與關閉是必不可少的。
(4) 它沒有侵入性,即所謂的輕量級框架
(5) 移植性會很好
(6) 快取機制,提供一級快取和二級快取
(7) 簡潔的HQL程式設計
2. Hibernate缺點
(1) Hibernate在批量資料處理時有弱勢
(2) 針對單一物件簡單的增刪查改,適合於Hibernate,而對於批量的修改,刪除,不適合用Hibernate,這也是OR框架的弱點;要使用資料庫的特定優化機制的時候,不適合用Hibernate
相關文章
- hibernate初學問題
- 初學Hibernate,請教高手
- Hibernate框架學習框架
- Hibernate學習大全
- 跪求 hibernate 學習方法
- hibernate學習資料
- 學習Hibernate原始碼二_Hibernate物件對映檔案hbm學習原始碼物件
- 初觸hibernate--基礎知識盲區
- hibernate學習筆記(2)筆記
- hibernate學習筆記(1)筆記
- Hibernate學習筆記二筆記
- hibernate學習:HelloWorld_xmlXML
- hibernate學習:HelloWorld_Annotation
- hibernate學習筆記 1筆記
- 學習Hibernate原始碼三_Hibernate中的配置檔案解析原始碼
- Hibernate學習(一)建立資料表
- Hibernate學習(二)儲存資料
- Hibernate原始碼學習五_建立SessionFactory原始碼Session
- Java框架學習之Hibernate入門Java框架
- Hibernate的入門知識
- Hibernate知識點總結
- Hibernate學習(四)get和Load比較
- Hibernate學習:slf4j日誌框架框架
- Hibernate原始碼學習四 _服務註冊原始碼
- 框架學習:hibernate框架的結構和分析框架
- 學習Hibernate原始碼一_下載hibernate原始碼並編譯為eclipse專案原始碼編譯Eclipse
- Hibernate【快取】知識要點快取
- Hibernate【對映】知識要點
- hibernate常用知識書目錄
- Hibernate常見知識彙總
- Hibernate SQL方言 (hibernate.dialect)SQL
- hibernate學習(六) flush()和clean()區別和使用
- Hibernate識別符號生成器符號
- RxJava學習一:初識RxJava
- 學習Hibernate5這一篇就夠了
- Hibernate學習(三)一對多資料的儲存
- JAVA高階程式設計之hibernate框架學習二Java程式設計框架
- Java新手如何學習Spring、Struts、Hibernate三大框架?JavaSpring框架