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

📄 connectionmanager.java

📁 野蔷薇论坛源码 java 自己看看吧。 学习用
💻 JAVA
字号:
package com.yeqiangwei.club.dao.hibernate;

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

/**
 * 
 * @author YeQiangWei by 我容易么我
 * Powered by YeQiangWei.com
 */
public class ConnectionManager{
	
	private static final Logger logger = Logger.getLogger(ConnectionManager.class);
	
    private static SessionFactory sessionFactory = null;
    
    public static final ThreadLocal<Session> localSession = new ThreadLocal<Session>() ;
    
    private static final ThreadLocal<Transaction> transactionThread = new ThreadLocal<Transaction>();
    
    public static void init() throws HibernateException {
    	if(sessionFactory==null){
	        sessionFactory = 
	            new Configuration().configure("/yeqiangwei.hb.xml").buildSessionFactory();
	        logger.debug("SessionFactory Instance");
    	}
    }
    
    public static SessionFactory getSessionFactory(){
    	if(sessionFactory==null){
    		ConnectionManager.init();
    	}
    	return sessionFactory;
    }
    
	public static Session getSession(){
        Session session = localSession.get();
        if(session==null||!session.isOpen()){
            session = sessionFactory.openSession();
            logger.debug("getSession() session.isOpen:"+session.isOpen());
            localSession.set(session);
        }
        return session;
    }
    
	public static void closeSession() throws HibernateException {
        Session session = localSession.get();
        if (session!= null&&session.isOpen()){
        	logger.debug("closeSession() session.isOpen:"+session.isOpen());
            session.close(); 
        }
        localSession.set(null);
    }
	
    public static Transaction beginTransaction() throws HibernateException {   
        Transaction tx = transactionThread.get();   
        if (tx == null) {   
            tx = getSession().beginTransaction();   
            transactionThread.set(tx);   
        }   
        return tx;   
    }
    
    /**  
     * 提交当前Session的Transaction  
     * @throws HibernateException  
     */  
    public static void commitTransaction() throws HibernateException {   
        Transaction tx = transactionThread.get();   
        transactionThread.set(null);   
        if (tx != null) tx.commit();   
    }   
  
    /**  
     * 回滚当前事务  
     * @throws HibernateException  
     */  
    public static void rollbackTransaction() throws HibernateException {   
        Transaction tx = transactionThread.get();   
        transactionThread.set(null);   
        if (tx != null) tx.rollback();   
    }  

}

⌨️ 快捷键说明

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