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

道与连接

吴松
2023-03-14

我应该在哪里打开和关闭到存储库的连接?在文章“不要重复DAO”中写道:

DAO不负责处理事务、会话或连接。这些都是在DAO之外处理的,以实现灵活性。

但有些人建议我将@Resource DataSource对象注入DAO类,并处理DAO方法内部的所有连接。。。i、 e.每个CRUD操作都应打开和关闭与存储库的连接。

共有3个答案

陆昕
2023-03-14

我同意您可以使用spring来管理事务,但同时请记住,管理事务不是DAO的职责。它们应该在负责管理业务逻辑的服务层中处理。

马阳晖
2023-03-14

我个人使用Spring来管理数据源。

在应用程序上下文xml中配置数据源bean。将其自动连接到DAO,然后使用Spring在DAO类上使用@Transactional注释处理事务。

您还需要

如果使用Hibernate,可以通过在应用程序上下文中配置SessionFactory来完成同样的操作。

金瑞
2023-03-14

以文章中的建议为例。

您最好希望应用程序容器管理资源和连接池。如果您的连接配置了事务管理,那么容器将能够管理您的事务(因此无需打开连接并进行提交)。

如果您自己管理连接和事务,请先打开连接,启用事务并将打开的连接传递给DAO,提交事务,然后关闭连接(在DAO之外)。

一旦您的服务完成所有DAO的,关闭连接。

希望这有帮助。

 类似资料:
  • RabbitMQ Java客户端有以下概念: -与RabbitMQ服务器实例的连接 -??? 使用者线程池-使用RabbitMQ服务器队列中的消息的线程池 队列-按FIFO顺序保存消息的结构 我试图理解他们之间的关系,更重要的是,他们之间的联系。 我仍然不太清楚是什么,除了这是您发布和使用的结构,并且它是从一个开放的连接创建的。如果有人能向我解释一下“通道”代表什么,可能有助于澄清一些问题。 通道

  • 我有简单的Spring启动RSocket服务 连接2个Spring服务很容易,但我的客户端应用程序没有Spring,我的客户端应该在RSocket java中 我很难理解如何将(路由,如Spring RocketRequest ester)消息发送到该特定通道。 客户端代码应为: 有可能订阅Spring频道吗?

  • 目前,在WMQ端,有一个名为的队列管理器。在这个队列管理器下,我创建了两个通道。一个是,它没有指定SSL密码规范;另一个是,它用配置SSL密码规范,用配置SSL身份验证。 我已经使用IBM密钥管理工具为队列管理器创建了一个密钥存储区。密钥db的路径是。 对于通道,我定义了一个队列连接工厂,如下所示: 现在我只能使用创建连接。但未能查找SSL队列连接工厂。我的代码如下所示: 在查找SSL工厂时,我是

  • 我是Grpc电话的新手。 目前,我正在使用Grpc。核心创建“通道”的新实例。请参阅下面的代码。 现在,我想在创建通道时添加一个连接超时。Grpc.Core有可能吗? 我知道可以在使用“Grpc.Net.Client.”时添加选项,但是,它只适用于. Net Core 2.1和我的项目不针对该框架。https://docs.microsoft.com/en-us/aspnet/core/grpc/

  • 我正在尝试从Jenkins管道使用helm部署容器。我已经为jenkins安装了库伯内特斯插件,并在本地运行kubernetes URL和凭据中的配置文件中提供了它。当我执行时,它显示。 但是当我从管道运行helm install命令时,它会出错。 注意:我可以使用 CLI 以及通过使用和传递信誉文件变量名称(在 jenkins 凭据中创建)从 Jenkins 管道执行所有操作。我只想这样做,而不

  • 长连接通道 SDK 概要 初始化 使用方式 业务请求响应模型 订阅 Topic 取消订阅 Topic Publish 数据 注册下行 Listener 混淆配置 长连接通道 SDK 更新时间:2018-03-26 19:22:29 概要 长连接通道SDK,提供 IoT 业务协议封装的云端数据下行能力;为 app 提供订阅、发布消息的能力, 和支持请求响应模型。 依赖SDK 概述 API 通道 提供