Hibernate架构体系结构

2019-04-21 23:00|来源: 网路

Hibernate架构包括许多对象持久对象,会话工厂,事务工厂,连接工厂,会话,事务等。

hibernate架构中有4层Java应用层,hibernate框架层,反手api层和数据库层。请参见hibernate架构图:

这是Hibernate的高级架构,具有映射文件和配置文件。

002.jpg

Hibernate框架使用许多对象会话工厂,会话,事务等以及现有的Java API,如JDBC(Java数据库连接),JTA(Java事务API)和JNDI(Java命名目录接口)。

Hibernate体系结构的要素

要创建第一个hibernate应用程序,我们必须知道Hibernate架构的元素。 它们如下:

会话工厂(SessionFactory)

SessionFactoryConnectionProvider的会话和客户端工厂。 它拥有数据的二级缓存(可选)。 org.hibernate.SessionFactory接口提供了工厂方法来获取Session的对象。

会话(Session)
Session对象提供应用程序和存储在数据库中的数据之间的接口。 它是一个短生命周期的对象并包装JDBC连接。 它是事务,查询和标准的工厂。 它拥有一级缓存(强制性)数据。 org.hibernate.Session接口提供插入,更新和删除对象的方法。 它还提供了事务,查询和标准的工厂方法。

事务(Transaction)
事务对象指定工作的原子单位,它是一个可选项。 org.hibernate.Transaction接口提供事务管理的方法。

连接提供者(ConnectionProvider)

它是一个JDBC连接工厂。 它从DriverManagerDataSource抽象出来的应用程序。 它是一个可选项。

事务工厂(TransactionFactory)

它是一个事务工厂,是一个可选项。


相关问答

更多
  • 电脑体系结构?[2022-10-20]

  • ....就是这样
  • 计算机体系结构(ComputerArchitecture)是程序员所看到的计算机的属性,即概念性结构与功能特性。按照计算机系统的多级层次结构,不同级程序员所看到的计算机具有不同的属性。 计算机组成(computer composition)指的是系统结构的逻辑实现,包括机器机内的数据流和控制流的组成及逻辑设计等。
  • 让我说明一下这个区别。 框架: 建筑: Let me illustrate the difference. Framework: Architecture:
  • 这个区别不是很大,最主要的区别就是mybatis简化了编码的过程,不需要去写dao的实现类,直接写一个dao的接口,再写一个xml配置文件,整个mybatis就配置好了,也就是数据库就连接好了,然后在service里面直接调用dao就可以了,但是ibatis则不可以,必须要写dao的实现类,再写个return getSqlMapClientTemplate().queryForList()神马的,mybatis是ibatis的升级版本。还有些区 别就是xml里面的sql语句的写法有些小变化,但是不大。 My ...
  • 恕我直言,交易应该去服务层。 通常,一个业务事务包含多个查询和更新。 如果仅将@Transactional放置在DAO层上,则每个查询和更新都将在单独的事务中运行,这有效地破坏了事务的目的。 但是如果服务是@Transactional ,每个数据库交互都会加入一个在web层进入服务层时开始的主事务。 请注意,在这种情况下,如果Web层运行多个服务方法,它们中的每一个都将在单独的事务中运行(同一个问题将向上移动一级)。 但将@Transactional放置在Web层可能会引入意想不到的副作用,例如N + 1问 ...
  • saveUser不应该刷新会话。 刷新会议应该很少见。 让Hibernate处理这个问题,您的应用程序将更加高效。 在这样的地方设置缓存模式也很奇怪。 你为什么那样做? 至于为什么在使用load而不是在使用get时获得异常的解释:这是因为load假定您知道实体存在。 它不是执行select查询来从数据库中获取用户数据,而是返回一个代理,它将在第一次在对象上调用方法时获取数据。 如果在第一次调用方法时会话已关闭,则Hibernate无法再获取数据并抛出异常。 应该很少使用load ,除非在不必获取其数据的情况 ...