当前位置: 首页 > 知识库问答 >
问题:

什么是数据库会话?

商正浩
2023-03-14

我理解数据库事务概念的一般理解。我们在事务中访问数据库以确保ACID属性。

在Hibernate中有一个称为会话的概念。会话的用途是什么?何时应该在两个会话中而不是在同一会话中访问数据库?

为了解释更多,我看到了hibernate代码

  • 从会话工厂获取会话
  • 打开会话
  • 开始事务
  • 提交事务
  • 关闭会话

我需要知道的是会话在这里的重要性是什么?为什么没有像事务工厂这样的东西,开始事务并提交事务?

共有2个答案

丌官招
2023-03-14

@德米特里回答得很好。

查看会话的另一种方式是作为数据库使用的实例。当您创建一个会话时,您已经准备好了一个上下文,可以与其中所需的支持服务(如事务、缓存、连接等)进行任何数据库交互。事务是会话中使用的独立服务。

此外,会话是典型的 OR 映射工具(如Hibernate)使用的第一级缓存。会话充当根据请求创建的临时上下文,以促进数据库交互。

丁绪
2023-03-14

会话不仅仅是一个事务,它是UnitOfWork模式的实现。换言之,它保留加载的对象,知道哪些对象必须持久化等:

工作单元可以跟踪您在业务事务期间可能影响数据库的所有操作。完成后,它会计算出需要做的所有事情,以便根据您的工作更改数据库。

为了更好地理解会话和事务之间的关系,您可以看看这篇文章。

单个Hibernate会话可能与单个数据库事务具有相同的作用域。

这是用于每请求会话实现模式的最常见编程模型。单个会话和单个数据库事务实现对特定请求事件(例如,web应用程序中的Http请求)的处理。不要每次操作都使用会话反模式!(当每个操作的会话可能合适时,很少会出现异常,如果您只是在学习Hibernate,就不会遇到这些异常。)

另一种编程模型是长对话,例如实现多步骤对话的应用程序,例如向导对话框,以在几个请求/响应周期内与用户交互。实现这一点的一种方法是使用分离对象模式对每个请求进行会话。一旦持久化对象在用户思考时被认为是分离的,并且在修改后必须重新附加到新会话。

但是,建议使用每个会话一个会话的模式。在这种情况下,单个会话比单个数据库事务具有更大的范围,并且它可能跨越几个数据库事务。每个请求事件都在单个数据库事务中处理,但会话的刷新会延迟到会话和最后一个数据库事务结束时进行,以使会话成为原子会话。在用户思考期间,会话保持在断开状态,没有打开的数据库连接。Hibernate的自动乐观并发控制(带版本控制)用于提供对话隔离。

 类似资料:
  • 我理解数据库事务概念的一般理解。我们在事务中访问数据库以确保ACID属性。 在Hibernate中有一个称为会话的概念。会话的用途是什么?何时应该在两个会话中而不是在同一会话中访问数据库? 为了解释更多,我看到了hibernate代码 从会话工厂获取会话 打开会话 开始事务 提交事务 关闭会话 我需要知道的是会话在这里的重要性是什么?为什么没有像事务工厂这样的东西,开始事务并提交事务?

  • 主要内容:关系型数据库,非关系型数据库在学习数据库之前,应该先理解什么是数据。本节先介绍数据以及数据库的概念,再对关系型数据库和非关系型数据库的优缺点进行分析。 描述事物的符号称为 数据。数据有多种表现形式,可以是数字,也可以是文字、图形、图像、声音、语言等。在数据库中数据表示记录,例如,在学生管理数据库中,记录学生的信息包括学号、姓名、性别、年龄、籍贯和联系电话等,这些信息就是数据。 信息是指对数据进行加工处理后提取的对人类社会实践

  • 问题内容: 我只是想知道数据库连接池的概念以及如何实现。 问题答案: 数据库 连接 池是一种用于保持数据库连接打开以便其他人可以重用的方法。 通常,打开数据库连接是一项昂贵的操作,尤其是在数据库是远程的情况下。您必须打开网络会话,进行身份验证,检查授权等。池化使连接保持活动状态,以便在以后请求连接时,优先使用活动的连接之一,而不必创建另一个连接。 请参阅下图,了解以下几段: 以最简单的形式,它只是

  • 主要内容:Oracle数据库的版本,甲骨文公司,Oracle的历史Oracle数据库是一个关系数据库管理系统。 它也叫OracleDB或简称Oracle。 Oracle数据库由Oracle公司生产和销售。 Oracle数据库是第一个专为企业网格计算而设计的数据库。 企业网格计算提供了最灵活,最经济的方式来管理信息和应用程序。 Oracle数据库的版本 Oracle数据库主要有四个版本,如下所示 - - 企业版: 它是最强大和最安全的版本。 它提供所有功能,包括卓

  • 数据库系统 (Database System,DBS)由硬件和软件共同构成。硬件主要用于存储数据库中的数据,包括计算机、存储设备等。软件部分主要包括数据库管理系统、支持数据库管理系统运行的操作系统,以及支持多种语言进行应用开发的访问技术等。 数据库系统是指在计算机系统中引入数据库后的系统。完整的数据库系统结构关系如图所示: 由图可知,一个完整的数据库系统一般由数据库、数据库管理系统、应用开发工具、

  • 本文向大家介绍数据库三范式是什么?相关面试题,主要包含被问及数据库三范式是什么?时的应答技巧和注意事项,需要的朋友参考一下 用自己的话解释,而不是背概念。 第一范式:字段不能有冗余信息,所有字段都是必不可少的。 第二范式:满足第一范式并且表必须有主键。 第三范式:满足第二范式并且表引用其他的表必须通过主键引用。 员工内部→自己的老大→外部的老大 记忆顺序:自己内部不重复→别人引用自己→自己引用别人