HibernateUtil辅助类
package org.kevin.hibernate.util; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtil { private static final SessionFactory sessionFactory; static{ try { sessionFactory = new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { System.out.println("初始化SessionFactory失败"+ex); throw new ExceptionInInitializerError(ex); } } public static final ThreadLocal session = new ThreadLocal(); public static Session getCurrentSession() throws HibernateException{ Session s = (Session)session.get(); if(s == null || !s.isOpen()){ s=sessionFactory.openSession(); session.set(s); } return s; } public static void closeSession() throws HibernateException{ Session s = (Session)session.get(); session.set(null); if(s!=null) s.close(); } }
使用:
public class TestStudent { @Test public void testStudent(){ Student s = new Student(); s.setName("北京"); s.setDescription("改进的Hibernate工厂类"); Session session = HibernateUtil.getCurrentSession(); Transaction tx = session.beginTransaction(); session.save(s); tx.commit(); HibernateUtil.closeSession(); } }
http://www.docin.com/p-234927721.html