使用方法鏈編程風格可以改寫為
sessionFactory = new Configuration()
buildSessionFactory()
addClass(Customer
class)
buildSessionFactory();
注意
方法鏈編程風格能使應用程序代碼更加簡捷在使用這種編程風格時最好把每個調用方法放在不同的行否則在跟蹤程序時無法跳入每個調用方法中
★★★→→Session(orghibernateSession)
() 單線程的短壽命的對象代表了一次會話的過程實際上是把一個JDBC Connection打包 了它可以包含一些持久化對象的緩存看作介於數據連接與事物管理一種中間接口在hibernate的設計者中他們將session看作介於數據連接與事物管理的一種中間接口 或者想象成一個持久對象的緩沖區hibernate能檢測到這些持久對象的改變並及時刷新數據庫
() 每一個Session實例和一個數據庫事務綁定
通常將每一個Session實例和一個數據處理庫事務綁定就是說每執行一個數據庫事務(操作)都應該先創建一個新的Session實例如果事務執行中出現異常應該撤消事務不論事務執行成功與否最後都應該調用Session的close()方法從而釋放Session實例占用的資源
() 如何獲得Session對象
首先創建SessionFactory對象應用服務器如果訪問多個數據源時則應該產生多個SessionFactory但是僅僅為了服務與某個請求時不要創建一個新的SessionFactory因為創建SessionFactory需要消耗大量的資源然後根據SessionFactory再創建Session對象
例如
Session session=sessionFactory
openSession();
Transaction tx;
try{
tx=session
beginTransaction();//開始一個事務
//執行事務
tx
commit();
}catch(Exception e){//如果出現異常就撤消事務
if(tx!=null)
tx
rollback();
throw e;
}
finally//不管事務執行成功與否
最後都關閉Session並且放在finally中以提高安全性
session
close();
[] [] [] []
From:http://tw.wingwit.com/Article/program/Java/ky/201311/29026.html