package com.enterra.customfieldsdemo; import org.hibernate.FlushMode; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.hibernate.mapping.PersistentClass; import com.enterra.customfieldsdemo.domain.Contact; public class HibernateUtil { private static HibernateUtil instance; private Configuration configuration; private SessionFactory sessionFactory; private Session session; public synchronized static HibernateUtil getInstance() { if (instance == null) { instance = new HibernateUtil(); } return instance; } private synchronized SessionFactory getSessionFactory() { if (sessionFactory == null) { sessionFactory = getConfiguration().buildSessionFactory(); } return sessionFactory; } public synchronized Session getCurrentSession() { if (session == null) { session = getSessionFactory().openSession(); session.setFlushMode(FlushMode.COMMIT); System.out.println("session opened."); } return session; } private synchronized Configuration getConfiguration() { if (configuration == null) { System.out.print("configuring Hibernate ... "); try { configuration = new Configuration().configure(); configuration.addClass(Contact.class); System.out.println("ok"); } catch (HibernateException e) { System.out.println("failure"); e.printStackTrace(); } } return configuration; } public void reset() { Session session = getCurrentSession(); if (session != null) { session.flush(); if (session.isOpen()) { System.out.print("closing session ... "); session.close(); System.out.println("ok"); } } SessionFactory sf = getSessionFactory(); if (sf != null) { System.out.print("closing session factory ... "); sf.close(); System.out.println("ok"); } this.configuration = null; this.sessionFactory = null; this.session = null; } public PersistentClass getClassMapping(Class entityClass) { return getConfiguration().getClassMapping(entityClass.getName()); } }
最近下载更多
dd1995 LV9
2020年1月17日
luohaipeng LV23
2019年11月19日
RicardoWX LV7
2018年6月10日
小白袁 LV1
2018年5月17日
andycoder LV2
2018年5月3日
nonaddress LV1
2018年2月28日
xiayulin1983 LV2
2017年11月13日
bhkkvip LV1
2017年7月3日
a337214749 LV2
2017年6月27日
sf0001 LV2
2016年12月18日