Hibernate五大核心接口簡介

全部的Hibernate應用中都會訪問Hibernate的5個核心接口。
  Configuration接口:配置Hibernate,根啓動Hibernate,建立SessionFactory對象。
  SessionFactory接口:初始化Hibernate,充當數據存儲源的代理,建立Session對象。
  Session接口:負責保存、更新、刪除、加載和查詢對象。
  Transaction接口:管理事務。
  Query和Criteria接口:執行數據庫查詢。
  1.Configuration接口
  Configuration對象用於配置而且啓動Hibernate。Hibernate應用經過Configuration實例來指定對象-關係映射文件的位置或者動態配置Hibernate的屬性,而後建立SessionFactory實例。
  2.SessionFactory接口
  一個SessionFactory實例對應一個數據存儲源,應用從SessionFactory中得到Session實例。SessionFactory有如下特色:
  它是線程安全的,這意味着它的同一個實例能夠被應用的多個線程共享。
  它是重量級的,這意味着不能隨意建立或銷燬它的實例。若是應用只訪問一個數據庫,只須要建立一個SessionFactory實例,在應用初始化的時候建立該實例。若是應用同時訪問多個數據庫,則須要爲每一個數據庫建立一個單獨的SessionFactory實例。
  之因此稱SessionFactory是重量級的,是由於它須要一個很大的緩存,用來存放預約義的SQL語句以能映射元數據等。用戶還能夠爲SesionFactory配置一個緩存插件,這個緩存插件被稱爲Hibernate的第二級緩存。,該緩存用來存放被工做單元讀過的數據,未來其餘工做單元可能會重用這些數據,所以這個緩存中的數據可以被全部工做單元共享。一個工做單元一般對應一個數據庫事務。
3.Session接口
  Session接口是Hibernate應用使用最普遍的接口。Session也被稱爲持久化管理器,它提供了和持久化相關的操做,如添加、更新、刪除、加載和查詢對象。
  Session有如下特色:
  不是線程安全的,所以在設計軟件架構時,應該避免多個線程共享同一個Session實例。
  Session實例是輕量級的,所謂輕量級,是指它的建立和銷燬不須要消耗太多的資源。這意味着在程序中能夠常常建立和銷燬Session對象,例如爲每一個客戶請示分配單獨的Session實例,或者爲每一個工做單元分配單獨的Session實例。
  Session有一個緩存,被稱爲Hibernate的第一級緩存,它存放被當前工做單元加載的對象。每一個Session實例都有本身的緩存,這個Sesion實例的緩存只能被當前工做單元訪問。
  4.Transaction接口
  Transaction接口是Hibernate的數據庫事務接口,它對底層的事務接口作了封裝,底層事務接口包括:
  JDBC API、JTA(Java Transaction API)、CORBA(Common Object Requet Broker Architecture)API
  Hibernate應用可經過一致的Transaction接口來聲明事務邊界,這有助於應用在不一樣的環境容器中移植。儘管應用也能夠繞過Transaction接口,直接訪問底層的事務接口,這種方法不值得推薦,由於它不利於應用在不一樣的環境移植。
  5.Query和Criteria接口
  Query和Criteria接口是Hibernate的查詢接口,用於向數據庫查詢對象,以及控制執行查詢的過程。Query實例包裝了一個HQL查詢語句,HQL查詢語句和SQL查詢語句有些類似,但HQL查詢語句是面向對象的,它引用類句及類的屬性句,而不是表句及表的字段句。Criteria接口徹底封裝了基於字符串的查詢語句,比Query接口更加面向對象,Criteria接口擅長執行動態查詢。
  Session接口的find()方法也具備數據查詢功能,但它只是執行一些簡單的HQL查詢語句的快捷方法,它的功能遠沒有Query接口強大。
相關文章
相關標籤/搜索