當今應用軟件的交互基本上都離不開數據庫的支持,在Java的世界裏,傳統的數據庫訪問就是jdbc數據庫訪問,剛開始學習的時候應該還能滿足我們的需求,但真正在實際應用中,其繁瑣的操作,開發效率低效,代碼冗餘等不可避免的缺點也是大家有目共睹的,所以,一套高效簡便的數據庫訪問框架在這種繁瑣工作中誕生了。Hibernate就是這樣的一套框架。
Hibernate定義
Hibernate是一個開放源代碼的對象關係映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。 Hibernate可以應用在任何使用JDBC的場合。
持久化的定義
Hibernate的主要任務是完成數據的持久化。所謂的持久化:就是將程序數據在持久狀態和瞬時狀態轉換的一種機制。持久化的主要應用是將內存中的對象存儲在關係型的數據庫中,或者磁盤文件或者XML數據文件中等等。
- 瞬時狀態(transient)
保存在內存中的數據。程序退出後,數據就消失了。 - 持久狀態(persisten)
持久是相對時間來說的,在一定週期內保持不變就是持久。數據庫中的數據,只要你不去刪除或者修改,數據就是持久化了的數據。
Hibernate爲應用程序提供了高效的O/R關係映射和查詢服務,爲面向對象的領域模型到傳統的關係型數據庫的映射,提供了一個使用方便的框架。他也是對對象持久化的一個很好的實現。
對象關係映射(O/R)
Hibernate是一個開放源碼的對象關係映射框架,對象/關係數據庫映射(object/relation maooing)ORM這一術語表示一種技術,用來把對象模型表示的對象映射到基於SQL的關係模型數據庫結構中去。ORM的作用是在關係型數據庫和業務實體對象之間作一個映射,這樣我們在具體的操作業務對象時,就不需要再去和複雜的SQL打交道,只像平時操作對象一樣操作它就可以了。ORM提供了概念性的、容易理解的模型化數據方法。方法的 三個核心原則:
1. 簡單:以最基本的形式建模數據;
2. 傳達性:數據庫結構被任何人都能理解的語言文檔化;
3. 精確性:基於數據模型創建正確標準化了的結構。
Hibernate能做什麼?
Hibernate能幫助我們利用面向對象的思想,開發基於關係型數據庫的應用程序。
1. 將對象保存到數據庫
2. 將數據庫數據讀入對象中
從上述圖形可以看出,Hibernate使用數據庫和配置信息來爲應用程序提供持久化服務。
在這一篇中希望大家能通過介紹對Hibernate有一個初步的概念,理解其就是爲了將對象和關係數據映射,數據在對象和數據庫之間出入的一個持久化操作,其底層原理還是JDBC即可。