读书人

打包HibernateUtil对象

发布时间: 2012-09-02 21:00:34 作者: rapoo

封装HibernateUtil对象

package org.cric.util;import java.io.Serializable;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.cfg.Configuration;public class HibernateUtil {private static SessionFactory factory=null;//静态方法,只实例化一次,因为SessionFactory重量级,每个SessionFactory对应一个数据库,包含这个数据库的全部信息//单实例!static{try{Configuration cfg=new Configuration().configure();factory=cfg.buildSessionFactory();}catch(Exception e){e.printStackTrace();}}//获取Session 对象public static Session getSession(){return factory.openSession();}//获取SessionFactory对象public static SessionFactory getSessionFactory(){return factory;}//因为Session 不是线程安全的,所以需要关闭public static void closeSession(Session session){if(session!=null){if(session.isOpen()){session.close();}}}//封装save方法public static Integer save(Object object){Integer status=0;Session session=null;Transaction tr=null;try{session=HibernateUtil.getSession();tr=session.beginTransaction();Serializable serializable=session.save(object);status=serializable.hashCode();//序列化转化成Integer类型tr.commit();return status;}catch(Exception e){e.printStackTrace();tr.rollback();throw new RuntimeException();}finally{HibernateUtil.closeSession(session);}}//封装update方法public static Integer update(Object object){Session session=null;Transaction tr=null;try{session=HibernateUtil.getSession();tr=session.beginTransaction();session.update(object);tr.commit();return 1;}catch(Exception e){e.printStackTrace();tr.rollback();throw new RuntimeException();}finally{HibernateUtil.closeSession(session);}}//封装delete方法public static Integer delete(Object object){Session session=null;Transaction tr=null;try{session=HibernateUtil.getSession();tr=session.beginTransaction();session.delete(object);tr.commit();return 1;}catch(Exception e){e.printStackTrace();tr.rollback();throw new RuntimeException();}finally{HibernateUtil.closeSession(session);}}//封装get方法public static Object get(Class<?> clazz,Integer id){Session session=null;Transaction tr=null;try{session=HibernateUtil.getSession();tr=session.beginTransaction();Object obj=session.get(clazz, id);tr.commit();return obj;}catch(Exception e){e.printStackTrace();tr.rollback();throw new RuntimeException();}finally{HibernateUtil.closeSession(session);}}//封装find方法public static List<?> find(String HQL){Session session=null;Transaction tr=null;List<?> list=null;try{session=HibernateUtil.getSession();tr=session.beginTransaction();Query query=session.createQuery(HQL);list=query.list();tr.commit();return list;}catch(Exception e){e.printStackTrace();tr.rollback();throw new RuntimeException();}finally{HibernateUtil.closeSession(session);}}}
?

读书人网 >软件架构设计

热点推荐