首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DAO与连接

DAO与连接
EN

Stack Overflow用户
提问于 2013-01-18 10:39:26
回答 3查看 3.2K关注 0票数 3

我应该在哪里打开和关闭与存储库的连接?在"不要重复刀子“一文中写道:

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

但是有些人建议我将@Resource DataSource对象注入DAO类,并处理DAO方法中的所有连接。每个CRUD操作都应该打开和关闭到存储库的连接。

EN

回答 3

Stack Overflow用户

发布于 2013-01-18 10:48:32

采纳文章中的建议。

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

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

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

希望这能有所帮助。

票数 6
EN

Stack Overflow用户

发布于 2013-01-18 10:42:32

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

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

您还需要在应用程序上下文中使用<tx:annotation-driven/>

如果使用Hibernate,可以在应用程序上下文中配置SessionFactory

票数 1
EN

Stack Overflow用户

发布于 2013-01-18 10:50:53

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14397134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档