SSH:Hibernate框架(簡介)

數據庫操作是當今傳統應用軟件不可缺少的一部分,幾乎所用的應用性系統和交互性軟件都離不開數據庫的支持,所以對數據庫數據庫的操作也是一個必不可少的工作,在java的世界裏,傳統的數據庫訪問就是jdbc數據庫訪問,剛開始學習的時候應該還能滿足我們的需求,但真正在實際應用中,其繁瑣的操作,開發效率低效,代碼冗餘等不可避免的缺點也是大家有目共睹的,所以,一套高效簡便的數據庫訪問框架在這種繁瑣工作中誕生了,這就是我們如今java世界裏風靡全球的Hibernate框架(這個應該不誇張吧),所以從今天開始,我和大家就一起進入hibernate的複習。

Hibernate百度名片:

Hibernate是一個開放源代碼的對象關係映射框架,它對JDBC進行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數據庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成數據持久化的重任。

從上邊百度名片中,我們可以看出:

1)         其實hibernate底層依然是jdbc實現的,只不過jdbc的繁瑣操作都讓框架來替我們做了,程序員已經從繁瑣的jdbc操作中解脫出來了。

2)         Hibernate是一個對象關係映射模型,也就是說,它主要操作的是對象和關係之間的映射,對象,即爲我們java中類的對象,只不過類一般是一些實體類

3)         Hibernate不僅僅是在web上的應用框架,這是很多初學者的任務,認爲hibernate只是用在web開發中的。其實這是一個很錯誤的觀點

持久化:

       上面我們看出hibernate主要完成的是一個數據持久化的重任,很多人應該想了,這個,持久化是什麼啊?下面我們就來說一下這個持久化:持久化是將程序數據在持久狀態和瞬時狀態間轉換的一種機制,持久化的主要應用是將內存中的對象存儲在關係型的數據庫中,當然也可以存儲在磁盤文件中、XML數據文件中等等。

(1)瞬時狀態(transient)

保存在內存中的數據。程序退出後,數據就消失了。

(2)持久狀態(Persisten)

 

      在一定週期內保持不變就是持久化,持久化是針對時間來說的. 數據庫中的數據就是持久化了的數據,只要你不去刪除或修改. 比如在IE瀏覽器中一次Session會話中Session對象變量也是不變的,是Session容器中持久化 ,對象持久化的方式有很多種,根據週期不同有,page,Session,Application,

   hibernate爲應用程序提供了高效的O/R關係映射和查詢服務,爲面向對象的領域模型到傳統的關係型數據庫的映射,提供了一個使用方便的框架。他也是對對象持久化一個很好的實現。簡單示例一下:

                                              

 

對象關係映射

        從上邊我們可以看出,Hibernate是一個開放源代碼的對象關係映射框架,對象/關係數據庫映射(object/relational mapping(ORM))這個術語表示一種技術,用來把對象模型表示的對象映射到基於SQL的關係模型數據庫結構中去。ORM,即Object- Relational Mapping(對象關係映射),它的作用是在關係型數據庫和業務實體對象之間作一個映射,這樣,我們在具體的操作業務對象的時候,就不需要再去和複雜的 SQL語句打交道,只要像平時操作對象一樣操作它就可以了。 對象關係映射(ORM)提供了概念性的、易於理解的模型化數據的方法。ORM方法論應當基於三個核心原則: 
        
簡單:以最基本的形式建模數據。 
        
傳達性:數據庫結構被任何人都能理解的語言文檔化。 
        
精確性:基於數據模型創建正確標準化了的結構。 

 

下面我們就一起來認識一下hibernate,Hibernate能做什麼?

Hibernate能幫助我們利用面向對象的思想,開發基於關係型數據庫的應用程序

第一:將對象數據保存到數據庫

第二:將數據庫數據讀入對象中

 

Hibernate體系結構:

一個非常簡要的Hibernate體系結構的概要圖:

                                                   

從這個圖可以看出,Hibernate使用數據庫和配置信息來爲應用程序提供持久化服務(以及持久的對象)。

我們來更詳細地看一下Hibernate運行時體系結構。由於Hibernate非常靈活,且支持多種應用方案,所以我們這隻描述一下兩種極端的情況。“輕型”的體系結構方案,要求應用程序提供自己的JDBC 連接並管理自己的事務。這種方案使用了Hibernate API的最小子集:

                                                    

“全面解決”的體系結構方案,將應用層從底層的JDBC/JTA API中抽象出來,而讓Hibernate來處理這些細節。

 

好了,hibernate基本概念和體系結構就先介紹到這,下一篇博客我將會和大家一起來開發我們的第一個hibernate應用程序,謝謝大家支持。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章