- 使用Hibernate框架輕松連接數據庫(藍橋杯軟件大賽培訓教材-Java方向)
- 工業和信息化部人才交流中心藍橋杯軟件大賽專家委員會編著
- 849字
- 2018-12-27 17:47:35
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功能。
- C++面向對象程序設計(第三版)
- Mastering Visual Studio 2017
- 解構產品經理:互聯網產品策劃入門寶典
- Java高并發核心編程(卷2):多線程、鎖、JMM、JUC、高并發設計模式
- Manga Studio Ex 5 Cookbook
- Python程序設計(第3版)
- HTML5+CSS3+JavaScript Web開發案例教程(在線實訓版)
- Python算法從菜鳥到達人
- SQL Server 2008 R2數據庫技術及應用(第3版)
- Java Web從入門到精通(第2版)
- 從零學Java設計模式
- Clojure High Performance Programming(Second Edition)
- Python預測分析實戰
- Windows 10 for Enterprise Administrators
- 亮劍Java Web項目開發案例導航