⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 connectionusermanager.java

📁 野蔷薇论坛源码 java 自己看看吧。 学习用
💻 JAVA
字号:
/* 
 * 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -