connectionusermanager.java

来自「这是一款最新的野蔷薇论坛源码,有需要的朋友可以尽情下载」· Java 代码 · 共 89 行

JAVA
89
字号
/* 
 * Created on 2007-9-8
 * Last modified on 2007-9-8
 * Powered by YeQiangWei.com
 */
package com.yeqiangwei.club.dao.hibernate;

import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class ConnectionUserManager {
	
	private static final Logger logger = Logger.getLogger(ConnectionUserManager.class);
	
    private static SessionFactory SESSION_FACTORY = null;
    
    public static final ThreadLocal<Session> LOCAL_SESSION = new ThreadLocal<Session>() ;
    
    private static final ThreadLocal<Transaction> TRANSACTION_THREAD = new ThreadLocal<Transaction>();
    
    public static void init() throws HibernateException {
    	if(SESSION_FACTORY==null){
	        SESSION_FACTORY = 
	            new Configuration().configure("/yeqiangwei.user.hb.xml").buildSessionFactory();
	        logger.info("Users SessionFactory Instance");
    	}
    }
    
    public static SessionFactory getSessionFactory(){
    	if(SESSION_FACTORY==null){
    		ConnectionUserManager.init();
    	}
    	return SESSION_FACTORY;
    }
    
	public static Session getSession(){
        Session session = LOCAL_SESSION.get();
        if(session==null||!session.isOpen()){
            session = SESSION_FACTORY.openSession();
            logger.debug("getSession() session.isOpen:"+session.isOpen());
            LOCAL_SESSION.set(session);
        }
        return session;
    }
    
	public static void closeSession() throws HibernateException {
        Session session = LOCAL_SESSION.get();
        if (session!= null&&session.isOpen()){
        	logger.debug("closeSession() session.isOpen:"+session.isOpen());
            session.close(); 
        }
        LOCAL_SESSION.set(null);
    }
	
    public static Transaction beginTransaction() throws HibernateException {   
        Transaction tx = TRANSACTION_THREAD.get();   
        if (tx == null) {   
            tx = getSession().beginTransaction();   
            TRANSACTION_THREAD.set(tx);   
        }   
        return tx;   
    }
    
    /**  
     * 提交当前Session的Transaction  
     * @throws HibernateException  
     */  
    public static void commitTransaction() throws HibernateException {   
        Transaction tx = TRANSACTION_THREAD.get();   
        TRANSACTION_THREAD.set(null);   
        if (tx != null) tx.commit();   
    }   
  
    /**  
     * 回滚当前事务  
     * @throws HibernateException  
     */  
    public static void rollbackTransaction() throws HibernateException {   
        Transaction tx = TRANSACTION_THREAD.get();   
        TRANSACTION_THREAD.set(null);   
        if (tx != null) tx.rollback();   
    }  

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?