標籤:nfa 異常 線程 close static factor figure open import
package util;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;/** * Hibernate工具類 * 作用: 擷取session與關閉session * @author 尹濤 * */public class HibernateUtil { // 建立私人 靜態 線程對象 private static ThreadLocal<Session> TLSession = new ThreadLocal<Session>(); // 定義私人 靜態conguration對象 private static Configuration configuration; // 定義 私人 靜態 sessionfactory對象 private static SessionFactory sessionFactory; // 靜態域: 在使用該類時,預設載入內容 static{ try { // 讀取解析hibernate.cfg.xml檔案 configuration = new Configuration().configure(); // 解析*.hbm.xml檔案 sessionFactory = configuration.buildSessionFactory(); } catch (Exception e) { System.out.println("初始化載入異常"); e.printStackTrace(); } } /** * 擷取session對象 * @return session */ public static Session currentSession(){ // 擷取當前線程中的session對象 Session session = TLSession.get(); // 驗證session對象是否為空白 if (session == null) { // 使用工廠對象生產session對象 session = sessionFactory.openSession(); // 將session對象放入線程 TLSession.set(session); } return session; } public static void closeSession(){ // 擷取當前線程中的session對象 Session session = TLSession.get(); // 清空線程中的session對象 TLSession.set(null); // 驗證session是否為空白 if (session != null) { // 關閉session對象 session.close(); } }}
hibernate之工具類