【问题标题】:How can a DAO benefit the scalability of a system? [closed]DAO 如何使系统的可扩展性受益? [关闭]
【发布时间】:2012-10-12 23:45:53
【问题描述】:

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

谢谢

【问题讨论】:

    标签: java scalability dao


    【解决方案1】:

    DAO 层本质上是 Sajit 所说的抽象。不过我不同意他的解释。抽象某些东西以实现目标的意义——通常是简化一些更复杂的用例。

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        DAO(数据访问对象)用于在数据库之上提供一个抽象层。它往往具有最终打开连接并执行查询和/或存储过程的方法。

        我认为,当涉及到可伸缩性问题时,您需要注意 DAO 中的一件主要事情:连接管理。如果您正在使用某些第三方库,也许像Hibernate 这样的东西,您很可能不必担心连接,因为这些是由库本身管理的。

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

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            猜你喜欢
            • 2012-02-15
            • 1970-01-01
            • 2015-06-16
            • 2010-09-17
            • 1970-01-01
            • 2014-06-01
            • 2013-04-02
            • 2013-04-08
            • 2017-10-26
            相关资源
            最近更新 更多