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();
2 回答
慕盖茨4494581
TA贡献1850条经验 获得超11个赞
方法没有方法,方法返回对象,而那些对象有方法。
在这里,Configuration 有一堆方法返回 Confuguration(因此该方法返回它被调用的对象)。这允许方法链接,以便在该对象上调用 configure,然后在同一对象上调用 buildSessionFactory。
方法链的一个更常见的例子是 java.lang.StringBuilder 类。您可以在同一个构建器对象上使用连续的 append 调用构建一个字符串:
String example = new StringBuilder(“hello”)
.append(“ “)
.append(“world”)
.toString();
慕哥6287543
TA贡献1831条经验 获得超10个赞
Configuration 对象有一个 configure 方法,它将 hibernate.cfg.xml 中指定的所有配置作为 Configuration 对象返回。此信息用于连接到数据库。
然后从配置对象中获取 SessionFactory 对象,该对象将用于创建会话对象以连接到数据库。
配置配置=null; SessionFactory 工厂=null;
configuration = new Configuration().configure("com/app/cfgs/hibernate.cfg.xml"); 工厂=cfg.buildSessionFactory();
添加回答
举报
0/150
提交
取消