歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Hibernate中兩種獲取Session的方式

Session:是應用程序與數據庫之間的一個會話,是Hibernate運作的中心,持久層操作的基礎.對象的生命周期/事務的管理/數據庫的存取都與Session息息相關.

Session對象是通過SessionFactory構建的,下面舉個例子來介紹Hibernate兩種獲取session的方式。

日志,是編程中很常見的一個關注點.用戶在對數據庫進行操作的過程需要將這一系列操作記錄,以便跟蹤數據庫的動態.那麼一個用戶在向數據庫插入一條記錄的時候,就要向日志文件中記錄一條記錄,用戶的一系列操作都要在一個Session中進行,否則這就成為了兩個線程.不能保證同步.看下面的代碼

HibernateUtil管理Session的工具類

package com.bjpowernode.usermgr.util;

import org.hibernate.Session;//hibernate3的
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class HibernateUtils {
  private static SessionFactory factory;
 
  static{
        try{
        //讀取hibernate.cfg.xml文件
    Configuration cfg=new Configuration().configure();
         
    //建立SessionFactory
      factory=cfg.buildSessionFactory();
 
        }catch(Exception e){
      e.printStackTrace();
        }
  } 
 
      //獲得開啟著的Session
  public static Session getSession(){
    return factory.openSession();
  }
 
      //關閉Session
  public static void closeSession(Session session){
    if(session!=null){
    if(session.isOpen()){
      session.close();
    }
    }
  }
 
  public static SessionFactory getSessionFactory(){
    return factory;
  }
}

Copyright © Linux教程網 All Rights Reserved