標籤:style blog http io ar 使用 sp java strong
資料持久化 接觸到Hibernate之前是不知道這麼個概念的,查了不少資料一直都模糊不清。到底什麼是資料持久化呢?《精通Hibernate:Java對象持久化技術詳解》中給的解釋,感覺還是比較合理的。狹義的理解: “持久化”僅僅指把域對象永久儲存到資料庫中;廣義的理解,“持久化”包括和資料庫相關的各種操作。Hibernate所涉及到的資料持久化應該是基於廣義的理解的。本篇部落格也基於這個理解!
為什麼要資料持久化
資料持久化的目的是什麼呢?我們知道我們開發應用程式可能面對不同的資料來源、並發控制、交易處理等一系列資料處理相關的問題。這些底層的細節不僅技術難度大,而且難以控制,也不利於提高開發效率。資料持久化的目的就是要屏蔽這些底層的複雜操作,隱藏資料庫訪問細節。因此持久化方案需要關注如下問題:
- 將物件模型轉化為資料來源要求的模型
- 提供查詢機制,能夠方便的從資料來源中尋找到需要的對象
- 並發控制、事務等的管理
- 效能方便的最佳化,如cache功能
ORM 前面已經說明了資料持久話的概念,資料的持久化儲存是通過資料庫解決的。也就是說還需要做的資料操作的持久化。
Java是一種物件導向的開發語言,物件導向的設計和開發思想在J2EE的應用程式中使用廣泛。而目前主流的資料來源則是關係型的資料庫。物件導向和面向關係在設計思想和操作上截然不同的。 也就是說物件導向的Java語言和面向關係的資料庫之間的操作存在差異,這就需要引入一個“適配器”來屏蔽差異化操作。
ORM(object relation mapping)就是一種解決這個問題的持久化解決方案。主要實現程式對象到關聯式資料庫的映射,它的關鍵是Object和Relation,分別代表了對對象的操作和對關聯式資料庫的訪問。即通過映射關係把對對象的操作對應的對關聯式資料庫的操作持久的保持下來。即把開發人員從面向關係中解脫出來。
Hibernate的體繫結構 現在我們大概的知道了資料持久化的概念以及ORM的作用,Hibernate是ORM持久化方案的其中一個實現。我們繼續瞭解Hibernate架構的體繫結構,以及各個部分的作用。(圖片來源:《LINUX下基於MVC的JAVA WEB開發》)
可以看出Hibernate是通過一系列的設定檔和資料庫來實現持久化對象對資料庫的持久化操作的。簡單的說就是Hibernate為應用程式提供持久化對象,隔離開了應用程式對資料庫的直接操作。Hibernate通過設定檔將持久化對象和資料庫建立映射關係來訪問資料庫。
總結:本篇部落格就先到這裡,先理解一下Hibernate中經常出現的幾個概念。完了後再講架構內的組件和細節的東西。總的來說,HIbernate是適配器思想的應用,連結有差異的兩個部分。
SSH-Hibernate(一)—入門