程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 【SSH進階之路】Hibernate基本原理(一),sshhibernate

【SSH進階之路】Hibernate基本原理(一),sshhibernate

編輯:JAVA綜合教程

【SSH進階之路】Hibernate基本原理(一),sshhibernate


在開始學Hibernate之前,一直就有人說:Hibernate並不難,無非是對JDBC進一步封裝。一句不難,難道是真的不難還是眼高手低?

      如果只是停留在使用的層面上,我相信什麼技術都不難,看看別人怎麼做的,你也可以很快上手。

      這難道是學習的最終目的嗎?

      不是,絕對不是。我們需要了解這門技術的基本概念,它到底是什麼,它是干什麼的,它有什麼優缺點。下面我就帶領大家一起回顧一下Hibernate:


什麼是Hibernate?


      Hibernate,翻譯過來是冬眠的意思,正好現在已經進入秋季,世間萬物開始准備冬眠了。其實對於對象來說就是持久化。

 

掃盲--------------------------------------------------------------------------------------------------------

      持久化(Persistence),即把數據(如內存中的對象)保存到可永久保存的存儲設備中(如磁盤)。持久化的主要應用是將內存中的對象存儲在關系型的數據庫中,當然也可以存儲在磁盤文件中、XML數據文件中等等。

 

持久化是將程序數據在持久狀態和瞬時狀態間轉換的機制。
 

JDBC就是一種持久化機制。文件IO也是一種持久化機制。
 

日常持久化的方法:
1、將鮮肉冷藏,吃的時候再解凍的方法也是。
2、將水果做成罐頭的方法也是。

結束----------------------------------------------------------------------------------------------------------

  

我們從三個角度理解一下Hibernate:

 

一、Hibernate是對JDBC進一步封裝

       原來沒有使用Hiberante做持久層開發時,存在很多冗余,如:各種JDBC語句,connection的管理,所以出現了Hibernate把JDBC封裝了一下,我們不用操作數據,直接操作它就行了。
 

二、我們再從分層的角度來看

       我們知道非常典型的三層架構:表示層,業務層,還有持久層。Hiberante也是持久層的框架,而且持久層的框架還有很多,比如:IBatis,Nhibernate,JDO,OJB,EJB等等。

 

三、Hibernate是開源的一個ORM(對象關系映射)框架

      ORM,即Object-Relational Mapping,它的作用就是在關系型數據庫和對象之間做了一個映射。從對象(Object)映射到關系(Relation),再從關系映射到對象。這樣,我們在操作數據庫的時候,不需要再去和復雜SQL打交道,只要像操作對象一樣操作它就可以了(把關系數據庫的字段在內存中映射成對象的屬性)。

 

Hibernate的核心:

 

                 

 

     從上圖中,我們可以看出Hibernate六大核心接口,兩個主要配置文件,以及他們直接的關系。Hibernate的所有內容都在這了。那我們從上到下簡單的認識一下,每個接口進行一句話總結。

1、Configuration接口:負責配置並啟動Hibernate

2、SessionFactory接口:負責初始化Hibernate

3、Session接口:負責持久化對象的CRUD操作

4、Transaction接口:負責事務

5、Query接口和Criteria接口:負責執行各種數據庫查詢

 

注意:Configuration實例是一個啟動期間的對象,一旦SessionFactory創建完成它就被丟棄了。

 

Hibernate的優/缺點:

 

優點:

1、更加對象化

      以對象化的思維操作數據庫,我們只需要操作對象就可以了,開發更加對象化。

2、移植性
      因為Hibernate做了持久層的封裝,你就不知道數據庫,你寫的所有的代碼都具有可復用性。

3、Hibernate是一個沒有侵入性的框架,沒有侵入性的框架我們稱為輕量級框架。

      對比Struts的Action和ActionForm,都需要繼承,離不開Struts。Hibernate不需要繼承任何類,不需要實現任何接口。這樣的對象叫POJO對象。

4、Hibernate代碼測試方便。

5、提高效率,提高生產力。

 

缺點:

1、使用數據庫特性的語句,將很難調優

2、對大批量數據更新存在問題

3、系統中存在大量的攻擊查詢功能

 
總結:

 

      Hibernate可以使我們采用對象化的思維操作關系型數據庫。這篇博文最主要的目的是從整體上認識Hibernate,內容可能會有點空,不是特別詳細,但是後面會有更加針對性的博文進行講解。敬請期待。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved