Hibernate 4 之前
会话连接的实现方式只有SessionFactory。
示例:
Configuration cfg=new Configuration();
Configuration cfg=cfg.configure(“mysql.cfg.xml”);
SessionFactory sf=cfg1.buildSessionFactory();
休眠4.0、4.1、4.2
随着ServiceRegistry的概念发生变化,实现方式是ServiceRegistry & SessionFactory。
示例:
Configuration configuration = new Configuration();
configuration.configure();
serviceRegistry = new ServiceRegistryBuilder().applySettings(
configuration.getProperties()).build();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
return sessionFactory;
休眠4.3
ServiceRegistryBuilder() 也已弃用并替换为 StandardServiceRegistryBuilder()。
示例:
serviceRegistry = new StandardServiceRegistryBuilder().applySettings(
configuration.getProperties()).build();
我的问题是:
可以通过两种方式访问SessionFactory对象
第一:
ServiceRegistry sr = new StandardServiceRegistryBuilder().applySettings(con.getProperties()).build();
SessionFactory factory = con.buildSessionFactory(sr);
第二:
Configuration cfg = new Configuration().configure();
SessionFactory factory = cfg.buildSessionFactory();
它们都使用StandardServiceRegistry,但第二个更短,并且在configure()方法中使用StandardServiceRegistry,并且您在代码中看不到它