1.SessionFactory
SessionFactory负责创建Session实例。我们可以通过Configuation实例构建SessionFactory:
Configuration config = new Configuration().configure();
SessionFactory sessionFactory = config.buildSessionFactory();
Configuration实例config会根据当前的数据库配置信息,构造SessionFactory实例并返回。SessionFactory一旦构造完毕,即被赋予特定的配置信息。
也就是说,之后config的任何变更将不会影响到已经创建的SessionFactory实例(SessionFactory)。如果需要使用基于改动后的config实例的SessionFactory,需要从config重新构建一个SessionFactory实例。同样,如果应用中需要访问多个数据库,那么针对每个数据库,应分别为其创建对应的SessionFactory实例。
SessionFactory中保存了对应当前数据库配置的所有映射关系,同时也负责维护当前的二级数据缓存和Statement Pool。由此可见,SessionFactory的创建过程必然非常复杂、代价高昂,而这也就意味着,我们应该在系统设计中充分考虑到SessionFactory的重用策略。由于SessionFactory采取了线程安全的设计,可由多个线程并发调用,大多数情况下, 一恶搞应用中针对一个数据库共享一个SessionFactory实例即可
。
2.Session
Session是Hibernate持久化操作的基础。Session作为贯穿Hibernate的持久化管理器核心,提供了众多持久化方法,如save、update、delete、get等。通过这些方法,我们即可透明的完成对象的增删改查(CRUD)。
同时,值得注意的是,Hibernate Session的设计是非线程安全的,也就是说,一个Session实例同时只可由一个线程使用,同一个Session实例的多线程并发调用将导致难以预知的错误
。
Session实例由SessionFactory构建:
Configuration config = new Configuration().configure();
SessionFactory sessionFactory = config.buildSessionFactory();
Session session = sessionFactory.openSession();
分享到:
相关推荐
hibernate概述,hibernate入门Demo,hibernate配置文件详解(全局配置,实体类映射配置),配置实体规则,核心API详解(Configuration,sessionFactory,session,Transaction),hibernate中的对象状态以及刷新能缓存机制 ...
用于获得Session会话及关闭Session会话
Hibernate中涉及到的增加,删除,查询,修改,操作.
HibernateSessionFactory.java
Session s= HibernateSessionFactory.getSession(); 就是Hibernate的工具java类
Hibernate中的sessionFactory
hibernate中的SessionFactoryhibernate中的SessionFactoryhibernate中的SessionFactory
一个实例小工程,讲解的是将hibernate的sessionFactory交给spring管理的配置方法
注:由于SessionFactory是重量级对象,很耗资源,所以在获取SessionFactory对象时最好用单例模式获取,以确保一个应用中只有一个SessionFactory对象存在和线程安全,由于Session对象 是非线程安全的(尽管创建一个...
Spring文件中的 SessionFactory中 加入为了能得到同一个Session
NULL 博文链接:https://chaoyi.iteye.com/blog/2148991
一个SessinFactory实例对应一个数据存储源,应用从SessionFactory中获得Session实例。如果应用同时访问多个DB,怎需要为每个数据库创建一个单独的SessionFactory实例。 (3)Session:也被称为持久化管理器,对象级...
Hibernate的核心接口一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。这6个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务...
javaEE SSH三大框架整合,Spring整合Hibernate,将Hibernate的SessionFactory对象交给Spring容器管理(方案一,不推荐)-附件资源
Hibernate5.2.1 的工具类 创建session 和 sessionFactory
例如以下代码先加载一个持久化对象,然后通过delete()方法将它删除: Session session1 = sessionFactory.openSession(); Transaction tx1 = session1.beginTransaction(); // 先加载一个持久化对象 Customer ...
(5)创建Hibernate的SessionFactory类。 (6)通过SessionFactory创建Session实例。 (7)通过创建的Session实例进行持久化对象的管理。 (8)通过创建的Transaction实例进行事务管理。 (9)通过创建的Query或...
NULL 博文链接:https://zgdkik.iteye.com/blog/1835667