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