package org.hexp.hibernateexp.util; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.AnnotationConfiguration; import org.hibernate.cfg.Configuration; public class HibernateUtil { private Map<String,SessionFactory> sfm; public HibernateUtil() { sfm = new HashMap<String,SessionFactory>(); } public void clearDbMap() { getSfm().clear(); } public void setDbMap(String db_key,String url, String user, String passwd, String hbm2ddl,String packageName,List<String> classList) { try { AnnotationConfiguration ac; ac = new AnnotationConfiguration(). setProperty("hibernate.connection.url", url). setProperty("hibernate.connection.username", user). setProperty("hibernate.connection.password", passwd). setProperty("hibernate.hbm2ddl.auto", hbm2ddl). setProperty("hibernate.connection.driver_class", "com.mysql.jdbc.Driver"). setProperty("hibernate.connection.pool_size", "1"). setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect"). setProperty("hibernate.current_session_context_class", "thread"). setProperty("hibernate.cache.provider_class", "org.hibernate.cache.NoCacheProvider"). setProperty("hibernate.show_sql", "true"); if(packageName != null && !packageName.equals("")) { ac = ac.addPackage(packageName); } for(String mappedClassName : classList) { ac = ac.addAnnotatedClass(Class.forName(mappedClassName)); } getSfm().put(db_key,ac.buildSessionFactory()); } catch (Throwable t) { System.err.println(t.getMessage()); t.printStackTrace(); } } public SessionFactory getInstance(String db_key) { return getSfm().get(db_key); } public Session openSession(String db_key) { return getSfm().get(db_key).openSession(); } public Session getCurrentSession(String db_key) { return getSfm().get(db_key).getCurrentSession(); } public void close(String db_key) { if (getSfm().get(db_key) != null) { getSfm().get(db_key).close(); } getSfm().put(db_key,null); } public Map<String, SessionFactory> getSfm() { return sfm; } public void setSfm(Map<String, SessionFactory> sfm) { this.sfm = sfm; } }