Java程式員從笨鳥到菜鳥之(五十)細談Hibernate(一)hibernate基本概念和體繫結構

來源:互聯網
上載者:User

        資料庫操作是當今傳統應用軟體不可缺少的一部分,幾乎所用的應用性系統和互動性軟體都離不開資料庫的支援,所以對資料庫資料庫的操作也是一個必不可少的工作,在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主要完成的是一個資料持久化的重任,很多人應該想了,這個,持久化是什麼啊?下面我們就來說一下這個持久化:持久化是將程式資料在持久狀態和瞬時狀態間轉換的一種機制,持久化的主要應用是將記憶體中的Object Storage Service在關係型的資料庫中,當然也可以儲存在磁碟檔案中、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應用程式,謝謝大家支援。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.