if (tempConfiguration.getProperty("hibernate.dialect").equals(config.getProperty("hibernate.dialect"))
&& tempConfiguration.getProperty("hibernate.connection.url").equalsIgnoreCase(config.getProperty("hibernate.connection.url"))
&& tempConfiguration.getProperty("hibernate.connection.username").equals(config.getProperty("hibernate.connection.username"))
&& tempConfiguration.getProperty("hibernate.connection.password").equals(config.getProperty("hibernate.connection.password"))) {
configuration = config;
sessionFactory = sessinFactoryMap.get(configuration.getProperty("hibernate.connection.url")+configuration.getProperty("hibernate.connection.username"));
flag = true;
break;
}
}
if (!flag){
closeSession();
closeSessionFactory();
configuration.reset();
configuration = tempConfiguration;
configurationList.add(configuration);
sessionFactory = configuration.buildSessionFactory();
sessinFactoryMap.put(configuration.getProperty("hibernate.connection.url")+configuration.getProperty("hibernate.connection.username"), sessionFactory);
// System.out.println("%%%% 会话工厂在这里重新开始 %%%%");
}
} catch (Exception e) {
System.err.println("%%%% 会话工厂重新开始错误 %%%%");
e.printStackTrace();
}
}
public static void closeSessionFactory() throws HibernateException {
try {
if (sessionFactory != null) {
sessionFactory.close();
}
} catch (Exception e) {
System.err.println("%%%% 会话工厂关闭错误 %%%%");
e.printStackTrace();
}
}
/**
* Close the single hibernate session instance.
*
* @throws HibernateException
*/
public static void closeSession() throws HibernateException {
Session session = (Session) threadLocal.get();
threadLocal.set(null);
if (session != null) {
}
}
/**
* return session factory
*
*/
public static org.hibernate.SessionFactory getSessionFactory() {
return sessionFactory;
}
/**
* return session factory
*
* session factory will be rebuilded in the next call
*/
/*public static void setConfigFile(String configFile) {
TempSessionFactory.configFile = configFile;
sessionFactory = null;
}*/
/**
* return hibernate configuration
*
*/
public static DynamicHibernateConfiguration getConfiguration() {
return configuration;
}
}
[java]
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.transform.Transformers;
/**
* 数据库操作
*
* @author 陈道俊改进版
*
*/
public class DynamicHibernateDAO {
p