什麼是hibernate?
hibernate,翻譯過來是冬眠的意思,正好現在已經進入秋季,世間萬物開始準備冬眠了。其實對於物件來說就是持久化。
持久化(persistence),即把資料(如記憶體中的物件)儲存到可永久儲存的儲存裝置中(如磁碟)。持久化的主要應用是將記憶體中的物件儲存在關係型的資料庫中,當然也可以儲存在磁碟檔案中、xml資料檔案中等等。
持久化是將程式資料在持久狀態和瞬時狀態間轉換的機制。
jdbc就是一種持久化機制。檔案io也是一種持久化機制。
日常持久化的方法:
1、將鮮肉冷藏,吃的時候再解凍的方法也是。
2、將水果做成罐頭的方法也是。
從三個角度理解一下hibernate:
一、hibernate是對jdbc進一步封裝
原來沒有使用hiberante做持久層開發時,存在很多冗餘,如:各種jdbc語句,connection的管理,所以出現了hibernate把jdbc封裝了一下,我們不用運算元據,直接操作它就行了。
二、我們再從分層的角度來看
我們知道非常典型的三層架構:表示層,業務層,還有持久層。hiberante也是持久層的框架,而且持久層的框架還有很多,比如:ibatis,nhibernate,jdo,ojb,ejb等等。
hibernate的核心:
從上圖中,我們可以看出hibernate六大核心介面,兩個主要配置檔案,以及他們直接的關係。hibernate的所有內容都在這了。那我們從上到下簡單的認識一下,每個介面進行一句話總結。
1、configuration介面:負責配置並啟動hibernate
2、sessionfactory介面:負責初始化hibernate
3、session介面:負責持久化物件的crud操作
4、transaction介面:負責事務
5、query介面和criteria介面:負責執行各種資料庫查詢
注意:configuration例項是乙個啟動期間的物件,一旦sessionfactory建立完成它就被丟棄了。
hibernate的優/缺點:
優點:
1、更加物件化
以物件化的思維運算元據庫,我們只需要操作物件就可以了,開發更加物件化。
2、移植性
因為hibernate做了持久層的封裝,你就不知道資料庫,你寫的所有的**都具有可復用性。
3、hibernate是乙個沒有侵入性的框架,沒有侵入性的框架我們稱為輕量級框架。
對比struts的action和actionform,都需要繼承,離不開struts。hibernate不需要繼承任何類,不需要實現任何介面。這樣的物件叫pojo物件。
4、hibernate**測試方便。
5、提高效率,提高生產力。
缺點:
1、使用資料庫特性的語句,將很難調優
2、對大批量資料更新存在問題
3、系統中存在大量的攻擊查詢功能
總結:hibernate可以使我們採用物件化的思維操作關係型資料庫。
SSH三大框架的理解
1 strus裡面寫action相關的東西主要是負責介面的跳轉 過濾功能 在web info的src的struts.xml檔案中進行配置 apache software foundation dtd struts configuration 2.3 en value messageresource ...
SSH三大框架整合原理
三大框架整合原理 1 三大框架的作用 struts2 是乙個mvc框架 spring容器 1 利用 ioc和 di做到了完全的面向介面程式設計 2 由於spring 的宣告式事務處理,使程式設計師不再關注事務 3 dao 層和service 層的類是單例的,但是 action 層是多例 hibern...
三大框架SSH整合原理
ssh整合過程 注意 在整合框架,每一大步都要測試,這樣容易排查問題,否則出了問題要從頭開始 1.導包 1 先將hibernate中的包全部匯入進來 一共是11個 如下 jpa 注意 10 個包 1個驅動包 2 匯入struts2所有包 一共14個 導包過程中,如果發現是同乙個包,版本不同一定要將其...