官术网_书友最值得收藏!

1.1 持久化及ORM概念

無論是JDBC還是Hibernate,都屬于“持久化”這個概念的范疇,只不過Hibernate是一種更高級和更有效的解決方案。在這一節中,將要了解持久化及持久化層的概念,以及持久化解決方案中的ORM,接著了解Hibernate與它們之間的關系。

1.1.1 持久化的概念

幾乎所有應用程序都需要操作持久化數據。持久化是應用程序開發的一個基礎概念——是將內存中的數據模型轉換為存儲模型,以及將存儲模型轉換為內存中的數據模型的統稱。數據模型可以是任何數據結構或對象模型,存儲模型可以是關系型數據庫表、XML文件、二進制文件等。

Java的持久化,通常是指使用SQL將數據存儲在關系型數據庫中。

1.1.2 持久化層

在大中型應用中,都會按Java class的作用來進行劃分,這就有了層的概念,如表現層、業務邏輯層、持久化層。將與持久化相關的類或組件打包在一起,就是多層系統中的持久化層(Persistence Layers)。

如圖1.1所示,持久化層是專門與數據庫打交道的層,作為基礎它被業務層調用。

圖1.1 持久化層是分層體系結構的基礎

1.1.3 ORM的概念

對象持久化或持久化層的實現有若干方案,例如通過JDBC調用SQL語句存取數據的方式,還有序列化對象的方式等。就技術發展的現狀而言,ORM是最好的方式。

ORM是持久化的一種解決方案,主要是把對象模型和關系型數據庫關系模型映射起來,并且使用元數據對這些映射進行描述。如圖1.2所示,實體類的定義可以和數據表的定義映射起來,類的屬性可以和數據表的字段映射起來。內存中的一個實體對象代表一行已經存在的數據或即將插入的數據。這樣映射起來之后,通過某種自動化的SQL生成機制便可達到“操作對象就是操作數據庫”的目標。

圖1.2 ORM示意圖

具體來說,ORM解決方案提供以下四個主要功能。

● 基本增刪改查的API

例如session.save(aSeeker),等效于執行一條insert語句。

● 對象或屬性查詢的API

例如session.createQuery("from Seeker").list()可以查詢出對應ijob_seeker表所有行的所有Seeker對象。

● 規范映射元數據

ORM解決方案需要規范映射的方式,通常選擇XML存儲映射元數據,因為XML便于讀取和規范格式。

● 事務控制、延遲加載等優化功能

點評

對象持久化是一個基本概念,ORM是這個概念的一種解決方案,而Hibernate是ORM的一個實現,是一個完整的ORM工具,提供了上述的所有ORM功能。

主站蜘蛛池模板: 义马市| 临安市| 伊川县| 金华市| 云和县| 额敏县| 石台县| 桑日县| 沈阳市| 茌平县| 湾仔区| 双鸭山市| 奎屯市| 临清市| 宁远县| 雅江县| 永年县| 上林县| 阳春市| 鄂伦春自治旗| 河北省| 兴和县| 徐水县| 九寨沟县| 教育| 海城市| 如东县| 邯郸县| 青海省| 汉沽区| 武清区| 遵义县| 滨州市| 隆化县| 苗栗市| 贺兰县| 百色市| 永泰县| 乌什县| 连江县| 商洛市|