1. 程式人生 > >Hibernate 的工具類

Hibernate 的工具類

  對於Hibernate 3.1 以前的的版本在實現Hibernate工具類時,需要通過兩個執行緒
區域性變數來儲存與當前進行相對應的Session和事務物件的例項.
  而對於Hibernate 3.1 以後的版本,使用執行緒區域性變數儲存Session和事務物件的
工作就完全不需要自己去實現了,只需在Hibernate.cfg.xml配置檔案中增加一個名為
Current_session_context_class的屬性,並且設定該屬性的值為thread.這樣Hibernate
就可以自動地使用執行緒區域性變數來儲存當前的程序的Session和事務物件了.
  相應地,Hibernate也為其Session物件增加了getTransaction()方法,以便可以隨時
得到當前的事務並進行提交或者回滾操作.這個方法在以前版本的hibernate中是不存在
的.
Hibernate工具類主要包括以下功能:
(1)Hibernate的初始化操作

  這個功能不放在任何方法中,採用靜態編碼的處理方式,在物件的初始化的時候被
  呼叫一次就可以了.
(2)得到當前的配置資訊
  這個方法可以得到當前的配置資訊,以便於動態進行配置引數的修改.hibernate
  的配置資訊只在Hibernate初始化的時候使用一次,在完成初始化之後對配置檔案
  或者Configuration物件所做的修改將不會生效.
(3)得到SessionFactory物件的例項
  這個方法用於得到當前系統執行時的SessionFactory物件的例項,這個物件的例項
  對於整個系統而言是全域性唯一的.
(4)釋放各種資源
  這個方法用於終止Hibernate的報務後,釋放各種Hibernate所使用的資源.雖然這個
  方法幾乎不會用到,但對於申請資源的及時釋放是每個程式應該掌握的基本原則.
(5)重建SessionFactory

  由於SessionFactory對於整個Hibernate應用是唯一的.並且是在Hibernate初始化
  之後建立好的,而且對於配置檔案的修改也不會影響到已經初始化的SessionFactory
  物件.那麼如何才能使修改的配置資訊對Hibernate起作用呢.這就需要重建SessionFactory
  物件例項.
(6)攔截器註冊
  用於註冊攔截器並重建SessionFactory.
HibenateUtil.java
import javax.naming.InitialContext;
import javax.naming.NamingException;