DAO如何有益于系统的可扩展性?

时间:2012-10-23 04:51:19

标签: java scalability dao

也许这不是一个技术问题,但我敢打赌,这里有许多经验丰富的开发人员可以帮助我回答这个问题

感谢

4 个答案:

答案 0 :(得分:2)

DAO层本质上是一种抽象,就像Sajit所说的那样。但是我不同意他的解释。为实现目标而抽象的东西 - 通常是一些更复杂的用例的简化。

您可以轻松创建DAO层,该层还提供了比简单地执行应用程序实体更多的功能 - 数据实体映射。它可以提供缓存,优化,翻译,弹性等。因此没有理由不能提供更好地扩展应用程序的能力。

最终取决于术语 - 缩放对您的应用程序意味着什么?更多更快 ???等

答案 1 :(得分:1)

Dao通常用于抽象出应用程序中数据库的实现细节,与可伸缩性无关。

答案 2 :(得分:1)

DAO(数据访问对象)用于在数据库上提供一个抽象层。它倾向于拥有方法,这些方法最终会打开连接并执行查询和/或存储过程。

我认为在涉及可伸缩性问题时,您需要注意DAO中的一个主要问题:连接管理。如果您正在使用某些第三方库,那么Hibernate的某些内容可能很可能不必担心连接,因为这些是由库本身管理的。

另一方面,如果您自己实现所有内容,则需要确保在最后一刻打开连接并在第一时间释放它。拥有一个吞噬连接的DAO最终会限制你的应用程序的扩展程度。

最后,在某些情况下,DAO将直接查询传递给数据库。您需要密切关注如何构建这些查询以确保它们不涉及任何不需要的处理。

答案 3 :(得分:0)

简单来说,如果一切都被束缚,你真的无法制作可扩展的应用程序。 DAO只是另一个帮助您处理数据访问逻辑的层。这样你就知道在哪里可以找到你的动态sql和东西,并且可以增强和维护它。