hibernate_Hibernate架构概述

hibernate

hibernate

下图提供了Hibernate体系结构的高级视图:

最小的架构

“最小”架构使应用程序管理自己的JDBC连接并提供与Hibernate的连接。 此外,应用程序自行管理交易。 这种方法使用了最少的Hibernate API子集。

综合架构

Hibernate Basic API

这里是有关上图中描述的一些API对象的快速讨论。

SessionFactory(org.hibernate.SessionFactory)

单个数据库的线程安全,不变的已编译映射缓存。 org.hibernate.Session实例的工厂。 org.hibernate.connection.ConnectionProvider的客户端。 (可选)维护数据的第二级缓存,该数据可在流程或集群级别的事务之间重用。

会话(org.hibernate.Session)

单线程,短暂的对象,表示应用程序与持久性存储之间的对话。 包装JDBC java.sql.Connection。 org.hibernate.Transaction的工厂。 维护持久性应用程序的持久性对象和集合的第一级缓存; 在导航对象图或通过标识符查找对象时使用此缓存。

持久对象和集合

包含持久状态和业务功能的短寿命单线程对象。 这些可以是普通的JavaBeans / POJO。 它们仅与一个org.hibernate.Session相关联。 一旦org.hibernate.Session关闭,它们将被分离并可以在任何应用程序层中自由使用(例如,直接作为与表示之间的数据传输对象)。

瞬时和分离的对象和集合

当前未与org.hibernate.Session关联的持久化类的实例。 它们可能已被应用程序实例化但尚未持久化,或者可能已被关闭的org.hibernate.Session实例化。

交易(org.hibernate.Transaction)

(可选)应用程序用于指定原子工作单元的单线程短期对象。 它从底层的JDBC,JTA或CORBA事务中抽象应用程序。 在某些情况下,一个org.hibernate.Session可能跨越多个org.hibernate.Transactions。 但是,使用基础API或org.hibernate.Transaction进行事务划分永远不是可选的。

ConnectionProvider(org.hibernate.connection.ConnectionProvider)

(可选)JDBC连接的工厂和池。 它从基础javax.sql.DataSource或java.sql.DriverManager中抽象应用程序。 它没有公开给应用程序,但是可以由开发人员扩展和/或实现。

TransactionFactory(org.hibernate.TransactionFactory)

(可选)org.hibernate.Transaction实例的工厂。 它没有公开给应用程序,但是可以由开发人员扩展和/或实现。

扩展接口

Hibernate提供了一系列可选的扩展接口,您可以实现这些接口来自定义持久层的行为。 有关详细信息,请参见API文档。

翻译自: https://www.javacodegeeks.com/2017/06/hibernate-architecture-overview.html

hibernate

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值