Java/Hibernate 初学者问题理解下面的代码

package com.util;


import org.hibernate.SessionFactory;


import org.hibernate.cfg.Configuration;


public class HibernateUtil {

    private static final SessionFactory sessionFactory = buildSessionFactory();


    private static SessionFactory buildSessionFactory() {

        try {

            // Create the SessionFactory from hibernate.cfg.xml

            return new Configuration().configure().buildSessionFactory();

        } catch (Throwable ex) {

            // Make sure you log the exception to track it

            System.err.println("SessionFactory creation failed." + ex);

            throw new ExceptionInInitializerError(ex);

        }

    }


    public static SessionFactory getSessionFactory() {

        return sessionFactory;

    }


    public static void shutdown() {

        // Optional but can be used to Close caches and connection pools

        getSessionFactory().close();

    }


}

我试图理解上面的代码。我是 Java 的初学者,很难具体理解以下行。这是否意味着,一个Configuration对象有一个配置方法,配置方法有buildSessionFactory方法?


return new Configuration().configure().buildSessionFactory();


慕容森
浏览 110回答 2
2回答

慕盖茨4494581

方法没有方法,方法返回对象,而那些对象有方法。在这里,Configuration 有一堆方法返回 Confuguration(因此该方法返回它被调用的对象)。这允许方法链接,以便在该对象上调用 configure,然后在同一对象上调用 buildSessionFactory。方法链的一个更常见的例子是 java.lang.StringBuilder 类。您可以在同一个构建器对象上使用连续的 append 调用构建一个字符串:String example = new StringBuilder(“hello”)    .append(“ “)    .append(“world”)    .toString();

慕哥6287543

Configuration 对象有一个 configure 方法,它将 hibernate.cfg.xml 中指定的所有配置作为 Configuration 对象返回。此信息用于连接到数据库。然后从配置对象中获取 SessionFactory 对象,该对象将用于创建会话对象以连接到数据库。配置配置=null; SessionFactory 工厂=null;configuration = new Configuration().configure("com/app/cfgs/hibernate.cfg.xml"); 工厂=cfg.buildSessionFactory();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java