SSH高階之路 Hibernate基本原理(一)

2021-07-09 08:56:54 字數 1581 閱讀 9853

hibernate,翻譯過來是冬眠的意思,其實對於物件來說就是持久化。

持久化(persistence),即把資料(如記憶體中的物件)儲存到可永久儲存的儲存裝置中(如磁碟)。持久化的主要應用是將記憶體中的物件儲存在關係型的資料庫中,當然也可以儲存在磁碟檔案中、xml資料檔案中等等。

持久化是將程式資料在持久狀態和瞬時狀態間轉換的機制。

jdbc就是一種持久化機制。檔案io也是一種持久化機制。

我們從三個角度理解一下hibernate:

一、hibernate是對jdbc進一步封裝

原來沒有使用hiberante做持久層開發時,存在很多冗餘,如:各種jdbc語句,connection的管理,所以出現了hibernate把jdbc封裝了一下,我們不用運算元據,直接操作它就行了。

二、

我們再從分層的角度來看

我們知道非常典型的三層架構:表示層,業務層,還有持久層。hiberante也是持久層的框架,而且持久層的框架還有很多,比如:ibatis,nhibernate,jdo,ojb,ejb等等。

三、hibernate是開源的乙個orm(物件關係對映

框架

從上圖中,我們可以看出hibernate六大核心介面,兩個主要配置檔案,以及他們直接的關係。hibernate的所有內容都在這了。那我們從上到下簡單的認識一下,每個介面進行一句話總結。

1、configuration介面:負責配置並啟動hibernate

2、sessionfactory介面:負責初始化hibernate

3、session介面:負責持久化物件的crud操作

4、transaction介面:負責事務

5、query介面和criteria介面:負責執行各種資料庫查詢

注意:configuration例項是乙個啟動期間的物件,一旦sessionfactory建立完成它就被丟棄了。

優點:

1、更加物件化

以物件化的思維運算元據庫,我們只需要操作物件就可以了,開發更加物件化。

2、移植性

因為hibernate做了持久層的封裝,你就不知道資料庫,你寫的所有的**都具有可復用性。

3、hibernate是乙個沒有侵入性的框架,沒有侵入性的框架我們稱為輕量級框架。

對比struts的action和actionform,都需要繼承,離不開struts。hibernate不需要繼承任何類,不需要實現任何介面。這樣的物件叫pojo物件。

4、hibernate**測試方便。

5、提高效率,提高生產力。

缺點:

1、使用資料庫特性的語句,將很難調優

2、對大批量資料更新存在問題

3、系統中存在大量的攻擊查詢功能

hibernate可以使我們採用物件化的思維操作關係型資料庫。這篇博文最主要的目的是從整體上認識hibernate,內容可能會有點空,不是特別詳細,但是後面會有更加針對性的博文進行講解。敬請期待。

acm高階之路

一般要做到50行以內的程式不用除錯 100行以內的二分鐘內除錯成功 第一階段 練經典常用演算法,下面的每個演算法給我打上十到二十遍,同時自己精簡 因為太常用,所以要練到寫時不用想,10 15分鐘內打完 1.最短路 floyd dijstra,bellmanford 2.最小生成樹 先寫個prim,k...

c c 高階之路

c c 從入門到高手所有必備pdf書籍收藏,喜歡的朋友支援下吧 c c和指標 pdf高畫質版 c程式語言 完美中文版pdf the c programming language 英文原版 c的缺陷與陷阱 pdf高畫質版 你必須知道的495個c語言問題 完美pdf c專家程式設計 高畫質版pdf 中英...

iOS 高階之路

自己閱讀,翻譯,裡面不懂的單詞,記下來,多學幾遍,這些你不懂的單詞,在以後你看其他時文件裡還會出現無數次的。堅持幾個月後,你會發現,英文的文件,看起來比中文的順眼了。為什麼要找自己熟悉的技術看,因為那樣的話,你更容易理解和增加信心。作為技術人員為什麼要寫部落格 即便沒有讀者,你也要寫部落格 原始碼 ...