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
对象具有configure方法,而configure方法具有buildSessionFactory
方法?
return new Configuration().configure().buildSessionFactory();
答案 0 :(得分:1)
方法没有方法,方法返回对象,而那些对象具有方法。
在这里,Configuration有许多返回Confuguration的方法(因此该方法将返回被调用的对象)。这允许方法链接,以便在该对象上调用configure,然后在同一对象上调用buildSessionFactory。
更常见的方法链接示例是java.lang.StringBuilder类。您可以在相同的构建器对象上通过连续的append调用来构建字符串:
String example = new StringBuilder(“hello”)
.append(“ “)
.append(“world”)
.toString();
答案 1 :(得分:0)
配置配置= null; SessionFactory factory = null;
配置=新 Configuration()。configure(“ com / app / cfgs / hibernate.cfg.xml”); factory = cfg.buildSessionFactory();