Hibernate自动生成类

时间:2015-04-10 12:22:53

标签: java hibernate

我在我的包中找到了一个HibernateUtil类,它包含了一个未知的语法。我不知道它是什么以及它是如何工作的:

public class HibernateUtil {
private static final SessionFactory sessionFactory;
//???
static {
    try{
        //Create the SessionFactory from standard config file (hibernate.cfg.xml)
        Configuration configuration = new Configuration().configure();
        StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());

        sessionFactory = configuration.buildSessionFactory(builder.build());
    }catch (Throwable ex){
        //Log the Exception
        System.err.println("Initial SessionFactory creation failed: "+ ex);
        throw new ExceptionInInitializerError(ex);
    }
 }

 public static SessionFactory getSessionFactory() {
    return sessionFactory;
 }
}

2 个答案:

答案 0 :(得分:0)

正如它所说,它是一个带有static块的实用程序类。 此课程确保为您的课程准备好会话。您可以使用它来处理会话以处理数据库。

静态块确保在类加载器将类加载到JVM中时运行它。以下是JLS Static Block

的更多内容

答案 1 :(得分:0)

这是Hibernate SessionFactory单例类。它在Class加载时创建SessionFactory对象。它从您的src文件夹中的Hibernate.cfg.xml文件中读取数据库属性。

每当你想要一个SessionFactory对象时,只需调用它的实例方法,如下所示:

HibernateUtil.getSessionFactory();