Hibernate(Control)

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

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

 

Hibernate框架編程

核心類和接口緩存

  Session接口安全

    非線程安全,負責執行被持久化對象的CRUD操做框架

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

  Session Factory接口.net

    負責初始化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&v二、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 查詢語句檢索對象

相關文章
相關標籤/搜索