gpt4 book ai didi

java - 多个数据库的 Dao 接口(interface)?

转载 作者:行者123 更新时间:2023-11-30 01:59:51 24 4
gpt4 key购买 nike

有一种在DAO实现之前创建DAO接口(interface)的模式。我在 google 上搜索了这种模式的优点,其中一个引人注目的点是支持多个数据库。

现在,我可以理解的是,这里的多个数据库意味着不同的数据库引擎而不是多个数据源。显然,多个数据源不应该影响 DAO 接口(interface)如何实现 DAO。

我的问题是在什么情况下我们可能需要支持多个数据库引擎来满足相同的数据?此外,如果出现此类需求,如何管理REST端点以支持不同的数据库?

他们会像这样吗? /db1/courses//db2/courses ?如果我在这个问题中做出了任何错误的假设或陈述,请纠正我。

最佳答案

我只是想添加我对开始 Spring 开发的回答。这是一开始没有意义的事情之一。你最终会问自己:

  • 只有 1 个数据库,所以这没有意义,为什么要这样做?
  • 当只有 1 个实现时,我为什么要定义一个接口(interface)?

但实际上,这些都不是您这样做的真正原因。但这是惯例和模式,这种风格正是人们所习惯的,随着时间的推移你会更喜欢它。还有一些其他原因:

  • Spring Data - 这是使用实体管理器的替代方法,您只需定义接口(interface),Spring 将实际创建为您实现存储库功能的 bean。
  • 设计 - 确保定义一个接口(interface)将有助于保持您的存储库的本质。
  • 更容易的模拟 - 尽管可以说您仍然可以在 Spring 中执行此操作,而无需定义接口(interface),但当您想用另一个接口(interface)替换实现时,它仍然更干净一些。

但实际上这只是 Spring 方式,如果你这样做,人们会发现更容易理解你的代码。

关于java - 多个数据库的 Dao 接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53240990/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com