import java.io.Serializable;
import org.hibernate.HibernateException;
import org.hibernate.Session;
package cn.itcast.hibernate.utils;
import java.io.Serializable;
import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration;
public final class HibernateUtil { private static SessionFactory sessionFactory; private HibernateUtil(){ } static{ Configuration cfg = new Configuration(); cfg.configure(); sessionFactory = cfg.buildSessionFactory(); } public static SessionFactory getSessionFactory(){ return sessionFactory; } public static Session getSession(){ return sessionFactory.openSession(); } /**增加**/ public static void add(Object obj){ Session s = null; Transaction ts = null; try{ s = getSession(); ts = s.beginTransaction();//开启事务 s.save(obj);//若不开启事务,sava方法会将数据插入数据库,之后又回滚给删掉了 //s.persist(user);若不开启事务根本不会插入 ts.commit();//提交事务 }catch(HibernateException e){ if(ts != null) ts.rollback(); throw e; }finally{ if(s != null) s.close(); } } /**删除**/ public static void delete(Object obj){ Session s = null; Transaction ts = null; try{ s = getSession(); ts = s.beginTransaction();//开启事务 s.delete(obj);//若不开启事务,sava方法会将数据插入数据库,之后又回滚给删掉了 //s.persist(user);若不开启事务根本不会插入 ts.commit();//提交事务 }catch(HibernateException e){ if(ts != null) ts.rollback(); throw e; }finally{ if(s != null) s.close(); } } /**更新**/ public static void update(Object obj){ Session s = null; Transaction ts = null; try{ s = getSession(); ts = s.beginTransaction();//开启事务 s.update(obj);//若不开启事务,sava方法会将数据插入数据库,之后又回滚给删掉了 //s.persist(user);若不开启事务根本不会插入 ts.commit();//提交事务 }catch(HibernateException e){ if(ts != null) ts.rollback(); throw e; }finally{ if(s != null) s.close(); } } /**查找:根据ID**/ public static Object get(Class clazz,Serializable id){ Session s = null; try{ s = HibernateUtil.getSession(); Object obj = s.get(clazz, id); return obj; }finally{ if(s != null) s.close(); } } }