標籤:
1.應用程式階層演變
縱觀幾十年的電腦應用軟體的演變過程,應用程式逐漸由單層體繫結構發展為多層體繫結構。最初應用軟體只是在大型主機上的單層應用程式,大都採用檔案系統儲存資料。20世紀70年代,隨著資料庫的普及,原來的單層結構發展為雙層結構。在雙層結構中,實現了資料存放與應用程式的分離。但是,負責使用者介面互動的代碼與商務邏輯混雜在一起,一個小的系統尚可以維護但是對於企業級的應用,長期的維護就是一件十分困難的事情。因此,三層的體繫結構應運而生。在三層結構中,把原來的應用程式層分成了視圖層和商務邏輯層、資料庫層維持不變。隨著軟體行業的蓬勃發展,人們感覺這樣頻繁的操作資料庫和大量的底層代碼的重複書寫極大的浪費了程式人員的心血,Hibernate,Spring,等架構的應運而生了。
在Hibernate中又將原來原商務邏輯層分成了商務邏輯層和持久層。(現在主流的分層結構依然是三層結構).
2.什麼是持久化? 為什麼要持久化?
1.什麼是持久化?
本人找了好多文章都沒有找到滿意的答案,最後是從孫衛琴寫的《精通Hibernate:Java對象持久化技術詳解》中,看到如下的解釋,感覺還是比較完整的。摘抄如下:
狹義的理解: “持久化”僅僅指把域對象永久儲存到資料庫中;廣義的理解,“持久化”包括和資料庫相關的各種操作(持久化就是將有用的資料以某種技術儲存起來,將來可以再次取出來應用,資料庫技術,將記憶體資料一檔案的形式儲存在永久介質中(磁碟等)都是持久化的例子.)。
● 儲存:把域對象永久儲存到資料庫。
● 更新:更新資料庫中域對象的狀態。
● 刪除:從資料庫中刪除一個域對象。
● 載入:根據特定的OID,把一個域對象從資料庫載入到記憶體。
● 查詢:根據特定的查詢條件,把符合查詢條件的一個或多個域對象從資料庫載入內在存中。
2.為什麼要持久化?
持久化技術封裝了資料訪問細節,為大部分商務邏輯提供物件導向的API。
● 通過持久化技術可以減少訪問資料庫資料次數,增加應用程式執行速度;
● 代碼重用性高,能夠完成大部分資料庫操作;
● 鬆散耦合,使持久化不依賴於底層資料庫和上層商務邏輯實現,更換資料庫時只需修改設定檔而不用修改代碼。
關於Hibernate持久化