这篇文章介绍的是hibernate中的一种SessionUtils类的编写,如有错误或者不当之处,还望各位大神批评指正。
前言
在hibernate中使用初始化设置以及创造SessionFactory对象不仅编写起来繁琐,而且效率比较低,因此就需要一个SessionUtils类来解决这个问题,在创建的时候初始化设置和SessionFactory,使用时直接提供session,使用完关闭session以及SessionFactory。
SessionUtil编写
public class SessionUtil {
static SessionFactory factory = null ;
static {
//将耗时较久的操作放到静态块中只初始化一次
Configuration config = new Configuration().configure() ;
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry()
.getParentServiceRegistry() ;
factory = config.buildSessionFactory(serviceRegistry) ;
}
public static Session openSession (){
//创建会话
return factory.openSession() ;
}
public static void closeSession(Session session){
//关闭会话
session.close() ;
factory.close();
}
}
使用
创建session
Session session = SessionUtil.openSession() ;
关闭session
SessionUtil.closeSession(session) ;