网站大量收购闲置独家精品文档,联系QQ:2885784924

日语外文翻译-体系结构.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
体系结构(Architecture) 2.1.概况(Overview) 一个非常简要的Hibernate体系结构的概要图: 从这个图可以看出,Hibernate使用数据库和配置信息来为程序提供持久化服务(以及持久的对象)。 我们来更详细地看一下Hibernate运行时体系结构。由于Hibernate非常灵活,且支持多种应用方案,所以我们这只描述一下两种极端的情况。“轻型”的体系结构方案,要求应用程序提供自己的JDBC连接并管理自己的事物。这种方案使用了Hibernate API的最小子集: “全面解决”的体系结构方案,将应用层的JDBC/JTA API中抽象出来,而让Hibernate来处理这些细节。 图中各个对象的定义如下: SessionFactory(org.hibernate.SessionFactory) 针对单个数据库映射关系经过编译后的内存镜像,是线程安全的(不可变)。它是生成Session的工厂,本身要用到ConnectionProvider。该对象可以在进程或集群的级别上,为那些事务之间可以重用的数据提供可选的二级缓存。 Session(org.hibernate.Session) 表示应用程序与持久储存层之间交互操作的一个单线程对象,此对象生存期很短。其隐藏了JDBC连接,也是Transaction的工厂。其会持有一个针对持久化对象的必选(第一级)缓存,在遍历对象图或者根据持久化标识查找对象时会用到。 持久的对象及其集合 带有持久化状态的、具有业务功能的单线程对象,此对象生存期很短。这些对象可能是普通的JavaBean/POJO,唯一特殊的是他们正与(仅仅一个)session相关联。一旦这个session被关闭,这些对象就会脱离持久化状态,这样就可被应用常年供需的任何层自由使用。(例如,用作跟表示层打交道的数据传输对象。) 瞬态(transaction)和脱管(detached)的对象和集合 那些目前没有与session关联的持久化类实例。他们可能是在被应用程序实例化后,尚未进行持久化的对象。也可能是因为实例化他们session已被关闭而脱离持久化的对象。 事务Transaction(org.hibernate.Transaction) (可选的)应用程序用来指定原子操作单元范围的对象,它是单线程的,生命周期很短。它通过抽象将应用从底层具体的JDBC、JTA以及CORBA事务隔离开。某些情况下,一个session之内可以包含多个transaction对象。尽管是否使用该对象是可选的,但无论是使用底层的API还是使用transaction对象,事务边界的开启与关闭是必不可少的。 ConnectionProvider(org.hibernate. Connection ConnectionProvider) (可选的)生成JDBC连接的工厂(同时也起到连接池的作用)。它通过抽象将应用从底层的Datasourse或DriverManager隔离开。仅供开发者扩展/实现用,并不暴露给应用程序使用。 TransactionFactory(org.hibernate.TransactionFactory) (可选的)生成Transaction对象实例的工厂。仅供开发者扩展/实现用,并不暴露给应用程序使用。 扩展接口 Hibernate提供了很多可选的扩展接口,你可以通过实现它们来制定你的持久层的行为。具体请参考API文档。 在特定“轻型”的体系结构中,应用程序可能绕过Transaction/ TransactionFactory以及ConnectionProvider等API直接跟JTA或JDBC打交道。 2.2.实例状态 一个持久化类的实例可能处于三种不同的状态中的某一种。这三种状态的定义则与所谓的持久化上下文有关。Hibernate和session对象就是这个所谓的持久化上下文: 瞬态(transient) 该实例从未与任何持久化上下文关联过。它没有持久化标识(相当于主键值)。 持久化(persistent) 实例目前与某个持久化上下文有关联。它拥有持久化标识,并且可能在数据库中有一个对应的行。对于某一个特定的持久化上下文,Hibernate保证持久化标识与Java标识等价。 脱管(datached) 实例曾经与某个持久化上下文发生过关联,不过那个上下文被关闭了,或者这个实例是被序列化到另外的进程。它拥有持久化标识,并且在数据库中可能存在一个对应的行。对于脱管状态的实例,Hibernate不保证任何持久化标识和Java标识的关系。 2.3.JMX整合 JMX是管理Java组件的J2EE标准。Hibernate可以通过一个JMX标准

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档