java 代码
- import org.hibernate.*;
- import org.hibernate.cfg.*;
- public class HibernateUtil {
- private static SessionFactory sessionFactory;
- static {
- try {
- sessionFactory = new Configuration().configure().buildSessionFactory();
- }catch(Throwable ex) {
- throw new ExceptionInInitializerError(ex);
- }
- public static SessionFactory getSessionFactory() {
- return sessionFactory;
- }
- public static void shutdown() {
- getSessionFactory().close();
- }
任何的session对象都要有这个SessionFactory来创建, SessionFactory是线程安全的,可以共享,而session是单一线程实体 。
这里用一个静态初始模块来start up Hibernate. 当这个类被load时候,这个静态模块,就被这个类的loader一次执行 创建SessionFactory 。同时赋值给静态变量。