Session的创建是一个很重的事情,如果每次运行就创建一个session对象,那么这段程序的运行速度一定很慢。所以,我们基于上段代码给Session用静态代码块的方式实现单例模式。
在文件夹添加一个HibernateUtils类
package com.hust.Fubo;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtils {
private static final Configuration config;
private static final SessionFactory factory;
static {
config = new Configuration().configure();
factory = config.buildSessionFactory();
}
public static Session getSession(){
return factory.getCurrentSession();
}
}
这样的方式实现了session对象只被创建一次,避免了多次加载sessionfactory的负担。
package com.hust.Fubo;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;
public class TestDemo {
@Test
public void selectStu(){
Session session = HibernateUtils.getSession();
Transaction t = session.beginTransaction();
Student s = (Student) session.get(Student.class,1);
System.out.println(s.toString());
}
}
本文介绍了一种使用静态代码块实现Hibernate Session单例模式的方法,通过这种方式可以避免每次运行时创建新的Session对象,从而提高程序运行效率。
1803

被折叠的 条评论
为什么被折叠?



