Hibernate(Control)

來源:互聯網
上載者:User

標籤:

案例:http://blog.csdn.net/jiuqiyuliang/article/details/39380465

對象關係映射架構,它對JDBC進行了輕量級的對象封裝,可以使用對象編程思維來操縱資料庫,實現對象持久化和事務控制。

 

Hibernate架構

核心類和介面

  Session介面

    非安全執行緒,負責執行被持久化對象的CRUD操作

    save()    臨時對象->持久化對象

  Session Factory介面

    負責初始化Hibernate

  Transaction介面

    可選介面,對實際事務實現的一個抽象,這些實現包括JDBC的事務、JTA 中的User Transaction、甚至可以是CORBA 事務。

  Query介面

    有兩種表達方式:HQL語言或本機資料庫的SQL語句。

    經常被用來綁定查詢參數、限制查詢記錄數量,並最終執行查詢操作。

  Criteria介面

    同Query,輕量級,不能在Session之外使用

  Configuration類

    對Hibernate 進行配置,負責啟動Hibernate,再建立一個Session Factory對象

核心對象

 

JDBC   Java DataBase Connectivity    java資料庫連接

l  是一種用於執行SQL語句的Java API,可以為多種關聯式資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成。

l  常用類:Driver Manager、Connection、Statement / Prepared Statement / Callable Statement、Result Set

JNDI   Java Naming and Directory Interface   Java命名和目錄介面

  JNDI可訪問的現有的目錄及服務有:DNS、Novell目錄服務、LDAP(Lightweight Directory Access Protocol輕量型目錄存取通訊協定)、 CORBA物件服務、檔案系統、Windows XP/2000/NT/Me/9x的註冊表、RMI、DSML v1&v2、NIS。

 

JDO(Java Data Object)

l  是Java對象持久化的新的規範,也是一個用於存取某種資料倉儲中的對象的標準化API。

l  JDBC只是面向關聯式資料庫(RDBMS);JDO更通用,提供到任何資料底層的儲存功能,比如關聯式資料庫、檔案、XML以及對象資料庫(ODBMS)等等,使得應用可移植性更強。

l  通過訪問JDO Instance , 達到訪問JDO Instance 所代表的資料對象,包括:ERP,資料庫系統等,使資料的儲存介質對於應用的開發人員完全透明。

JTA(Java Transaction API)和JTS(Java Transaction Services)——為J2EE平台提供了分散式交易服務(distributed transaction)

對比如下:

DAO

  • l  ⒈事務劃分代碼被嵌入到DAO類內部
  • l  ⒉DAO類使用JDBC API來進行事務劃分
  • l  ⒊調用者沒有劃分事務的方法
  • l  ⒋事務範圍被限定在一個單一的JDBC串連

JTA

  • l  ⒈用JTA對事務進行劃分
  • l  ⒉事務劃分代碼被DAO分開
  • l  ⒊調用者承擔劃分事務的責任
  • l  ⒋DAO參與一個全域的事務中

緩衝管理

第一層級的緩衝,是Session層級的緩衝,它是屬於事務範圍的緩衝。

  當應用程式調用Session的save()、update()、saveOrUpdate()、get()或load(),以及調用查詢介面的 list()、iterate()或filter()方法時,如果在Session緩衝中還不存在相應的對象,Hibernate就會把該對象加入到第一級緩衝中。

  當清理緩衝時,Hibernate會根據緩衝中對象的狀態變化來同步更新資料庫。 Session為應用程式提供了兩個管理緩衝的方法:

    evict(Object obj):從緩衝中清除參數指定的持久化對象。

    clear():清空緩衝中所有持久化對象。

第二層級的緩衝是Session Factory層級的緩衝,它是屬於進程範圍或群集範圍的緩衝。

** 查詢快取,依賴於第二級緩衝。

消極式載入

get不支援消極式載入,load支援消極式載入。

查詢語言

HQL                   根據物件導向的查詢語言檢索對象

導航對象圖           根據已經載入的對象,導航到其他對象

OID                   根據對象標識來檢索對象

QBC                  根據條件查詢介面(Criteria 介面、Criterion 介面和Expression 類)實現對資料的檢索

原生SQL             根據資料庫的SQL 查詢語句檢索對象

Hibernate(Control)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.