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

📄 hibernateutil.java

📁 本代码是在eclipse下开发hibernate的典型实例
💻 JAVA
字号:
package com.jgao.hql.test.business;

import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Session;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.Transaction;
import net.sf.hibernate.cfg.Configuration;

public class HibernateUtil {
    private static final SessionFactory sessionFactory;//会话工厂,用于创建会话
    public Session session;//hibernate会话
    public Transaction transaction; //hiberante事务
    public final ThreadLocal sessionThreadLocal = new ThreadLocal();

    static {
        try {
            sessionFactory = new Configuration().configure().buildSessionFactory();
        } catch (HibernateException ex) {
            throw new RuntimeException("Exception building SessionFactory: " + ex.getMessage(), ex);
        }
    }

    /**
     * 打开一个会话
     */
    protected Session openSession(){
        try{
            session = (Session)sessionThreadLocal.get();
	        if (session == null) {
	            session = sessionFactory.openSession();
	            sessionThreadLocal.set(session);
	        }
	        return session;
        }catch (HibernateException ex) {
            throw new RuntimeException("Exception building SessionFactory: " + ex.getMessage(), ex);
        }
    }

    /**
     * 关闭一个会话
     * @throws HibernateException
     */
    protected void closeSession() throws HibernateException{
        try{
            session = (Session) sessionThreadLocal.get();
            sessionThreadLocal.set(null);
            if (session != null)
                session.close();
            if(sessionFactory != null)
            	sessionFactory.close();  
        }catch (HibernateException ex) {
            throw new RuntimeException("Exception building SessionFactory: " + ex.getMessage(), ex);
        }finally{
            if(session != null)
                session.close();
            if(sessionFactory != null)
            	sessionFactory.close();
        }  
    }
    
    /**
     *开始一个hibernate事务
     */
    public void beginTransaction()
        throws HibernateException {
	    try{
	          session = (Session)sessionThreadLocal.get();
	        if (session == null) {
	            session = sessionFactory.openSession();
	            transaction = session.beginTransaction();
	            sessionThreadLocal.set(session);
	        }
	    }catch (HibernateException ex) {
	        throw new RuntimeException("Exception building SessionFactory: " + ex.getMessage(), ex);
	    }
    }
    
    /**
     *结束一个hibernate事务。
     * @throws HibernateException
     */
    public void endTransaction() throws HibernateException{       
         try{	
             transaction.commit();
         }catch (HibernateException ex) {
             if (transaction!=null) transaction.rollback();
             throw new RuntimeException("Exception while commit Transaction, and " +
             		"the Tarsaction had been rollback: " + ex.getMessage(), ex);
         }finally{
             if(session != null)
                 session.close();
             if(sessionFactory != null)
             	sessionFactory.close();
         }  
    }
}

⌨️ 快捷键说明

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