1. 程式人生 > >Hibernate獲取Session物件-單例模式

Hibernate獲取Session物件-單例模式

目錄

一、問題描述

    在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();
	}
}