Hibernate獲取Session物件-單例模式
阿新 • • 發佈:2018-12-13
目錄
一、問題描述
在Hibernate中需要使用Session物件來完成資料的操作,那麼該如何獲取Session物件?我們可以通過SessionFactory來獲取Session物件,我們可以將SessionFactory寫成單例模式,避免建立多個SessionFactory,導致資料庫效能降低
在工程程式碼中使用SessionFactory的openSession方法獲取session物件
二、工程程式碼
package com.codecoord.util; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; /** 採用單例模式 */ public class HibernateUtil { // SessionFactory工廠 用於獲取Session private static SessionFactory factory; // 構造方法私有化 private HibernateUtil() {} // 初始化SessionFactory private static void init() { // 不為空則建立SessionFactory if (factory == null) { Configuration config = new Configuration(); // 配置物件 config.configure("hibername.cfg.xml"); // 載入配置檔案 factory = config.buildSessionFactory(); // 構造工廠物件 } } /** 獲取連線 */ public static Session getSession() { if (factory == null) { init(); } return factory.openSession(); } }