Java DAO如何提高系统的可伸缩性?

Java DAO如何提高系统的可伸缩性?,java,scalability,dao,Java,Scalability,Dao,也许这不是一个技术问题,但我打赌这里有很多经验丰富的开发人员可以帮助我回答这个问题 感谢Dao通常用于抽象应用程序中数据库的实现细节,与可伸缩性无关。Dao(数据访问对象)用于在数据库上提供一层抽象。它往往有一些方法,这些方法最终会打开连接并执行查询和/或存储过程 我认为,当谈到可伸缩性问题时,您需要注意DAO中的一个主要方面:连接管理。如果您使用的是某个第三方库,可能您最不必担心的是连接,因为这些连接是由库本身管理的 另一方面,如果您自己实现了所有功能,则需要确保在可能的最后一刻打开连接,并在

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


感谢

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

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

我认为,当谈到可伸缩性问题时,您需要注意DAO中的一个主要方面:连接管理。如果您使用的是某个第三方库,可能您最不必担心的是连接,因为这些连接是由库本身管理的

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


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

DAO层本质上是一种抽象,如Sajit所说。然而,我不同意他的解释。抽象某些东西以达到某个目标的意义——通常是简化一些更复杂的用例

您可以轻松地创建一个DAO层,该层还提供了比简单地进行应用程序实体-数据实体映射更多的功能。它可以提供缓存、优化、转换、恢复等功能,因此没有理由不提供更好地扩展应用程序的功能


最终取决于术语-扩展对应用程序意味着什么?更多/更快???等等。

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