Chinaunix首页 | 论坛 | 博客
  • 博客访问: 352918
  • 博文数量: 88
  • 博客积分: 1673
  • 博客等级: 上尉
  • 技术积分: 934
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-20 13:51
文章分类

全部博文(88)

文章存档

2016年(1)

2015年(4)

2014年(3)

2013年(7)

2012年(11)

2011年(1)

2009年(61)

我的朋友

分类: Java

2009-07-31 15:43:47

hibernate的体系结构:

        1.sessionfacory:

             sessionfacory中保存了对应当前数据库配置的所有映射关系,它是将某个数据库的所有映射关系经过编译后保存在内存中。所以,sessionfacory的初始化过程是非常的复杂,同时也将耗费大量的资源。为了解决这个问题,hibernate的设计人员对hibernate采用了线程安全可以并发调用,实现sessionfactory的实例,然后,多个线程可以并发调用,实现hibernate实例共享。另外,sessionfactory还可以在进程或者集群的基础上,为那些事物之间可以重用的数据提供二级缓存

       sessionfactory还是生成session的工厂,他在进行实例化的过程中将会简化使用到connectionprovider。

       2、session

       session是hibernate进行持久化操作的基础,所有的持久化都是在session的基础上完成的。hibernate中的session就相当于JDBC中的Connection对象所起的作用,它包含了与数据库建立的连接对象,同时,他也是transaction的工厂。

    session是hibernate的持久化管理的核心。提供了一系列的持久化操作方法,例如,save,update,delete和find等。另外,session还持有一个针对持久化对象的一级缓存,在遍历持久化对象或者根据持久化便是查找对象的时候将会使用到。

     3.transaction(事物)

        transaction为用户提供了进行持久化操作的原子单元范围的设置功能。通过transaction对象,用户可以将多个持久化操作组合成一个原子操作,使这些原子操作要么能够全执行要么全都不执行,从作用上来说,它与数据库中的事物控制的概念是完全一样的。其实,也就是通过session对象产生的,所以他的生命周期要短于session的。一个session的生命周期内可能产生多个transaction对象。虽然在开发中是否使用transaction对象是可选的,但事物边界的开启和关闭则是必不可少的

    4.  connectionprovider

         connectionprovider从名称上就可以知道它的作用,它主要用于生成于数据库建立连接的JSBC对象,同时他还作为数据库连接的缓冲池。通过connectionprovider对象实现了应用程序和底层的datasource和DriverManager的隔离,这就为使用各种不同的datasource和   DriverManager提供了可能,同时,也不会影响到应用程序的使用。

   5。transactionfactory

      transactionfactory是生成transaction对象的工厂,通过transactionfactory实现了对事物的封装,使其具体的实现方法与应用程序无关

阅读(860) | 评论(0) | 转发(0) |
0

上一篇:hibernate的主要三个组件

下一篇:E-R图

给主人留下些什么吧!~~