hibernate的Configuration,SessionFactory,Session在API中的一些理解和翻译

author:heaven

一:

Configuration:

(1)当创建一个SessionFactory的时候,Configuration实例允许应用程序使用指定的资源文件和映

射文件,通常一个应用程序将创建唯一的Configuration,创建一个唯一的SessionFactory,接着创建

客户端请求服务的线程所需要的Session实例。

(2)只被当做初始化一次,Sessionfactory不可改变,不能保留任何信息。

(3)其中该对象里有个方法叫buildSessionFactory(),作用:在这个Configuration对象里使用资

源文件和映射文件,因此改变这个Configuration后,创建的SessionFactory将不受影响。

二:

SessionFactory:

它的主要作用就是创建Session实例,通常一个应用程序有一个唯一的SessionFactory实例和从这

个SessionFactory里包含客户端请求服务所需要的Session。一个SessionFactory的内部状态时不可以

改变的只要它被创建,这个内部状态就被决定了,这种内部状态包含了所有的对象映射关系的元数据

三:

Session:

(1)它是在java应用程序和Hibernate之间运行的主要接口。

(2)Session的生命周期是逻辑事务的创建到结束(大型的事务可能分成若干个数据库事务)。

(3)主要Session的方法是为映射的实体类对象提供创建,读,删操作。

(4)一个实例可能存在三种状态:

A:transient(短暂态):没有进行持久化,也没连接任何Session。

B:persistent(持久态):连接了唯一的Session。

C:detached(释放态):持久性过了,没有与任何Session关联。

(5)短暂态实例可能被save(),persist(),saveOrUpdate()变为持久态,持久态可以被delete()方

法变为短暂态,任何状态的实例被get()或者load()方法返回都变为持久太,释放态可能被

update(),saveOrUpdate(),lock()或者replicate()变为持久太,短暂态或者释放太的实例可以

被一个持久化实例的merge()方法变为持久太。

(6)调用save()和persist()(坚持的意思)方法的结果是插入SQL语句,delete()是删除的意思

,update(),merge()是更新SQl语句。

(7)设计者并没有打算设计成线程安全的,从一个SessionFactory实例替换为每一个线程或者事务

所包含的它自己的实例。

相关推荐