HIbernate4 获取SessionFactory 的方式

这些年一直都在做Mybatis的开发,美国空间,几乎都忘记了Hibernate的开发,现在重新学习一下,网站空间,下载最新的Hibernate 正式版Hibernate.4.2.2.Final。

如果你是用maven的话就是

org.hibernatehibernate-core4.2.2.Final

发现Hibernate4已经将configuration的buildSessionFactory方法已经划线了,免备案空间,说明已经过时了。

后来参看hibernate源码。以及API帮助文档,发现Hibernate4新增了一个接口ServiceRegistry,

所有基于Hibernate的配置或者服务都必须统一向这个ServiceRegistry注册后才能生效。

所以不难看出Hibernate4的配置入口不再是Configuration对象,而是ServiceRegistry对象,Configuration对象将通过ServiceRegistry对象获取配置信息。

使用了Builder模式创建一个ServiceRegistry对象,可以看到源码org.hibernate.service.ServiceRegistryBuilder这个类。

具体获取如下:

1 import org.hibernate.HibernateException; 2 import org.hibernate.SessionFactory; 3 import org.hibernate.cfg.Configuration; 4 import org.hibernate.service.ServiceRegistry; 5 import org.hibernate.service.ServiceRegistryBuilder; Test {Configuration configuration = null;SessionFactory sessionFactory = null;ServiceRegistry serviceRegistry = null; main(String[] args) {13try {14configuration = new Configuration().configure();15serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();16sessionFactory = configuration.buildSessionFactory(serviceRegistry);17} catch (HibernateException e) {18 e.printStackTrace();19 }20 }21 22 }

如果读取Annotaion的方式只要把

1 configuration = new Configuration().configure();

改为:

1 configuration = new AnnotationConfiguration().configure();

就可以了…..

蚁穴虽小,溃之千里。

HIbernate4 获取SessionFactory 的方式

相关文章:

你感兴趣的文章:

标签云: