代码之家  ›  专栏  ›  技术社区  ›  Prashant Lakhlani

基于配置在不同数据库中存储数据的单一功能的最佳实现方式是什么?

  •  2
  • Prashant Lakhlani  · 技术社区  · 14 年前

    我想在Java中实现一个从某个配置文件读取配置的示例,并在此基础上,当用户与页面交互时,应用程序将根据配置参数在MySQL或Oracle上存储一些数据。我们如何以最有效和最智能的方式实现这个示例?

    4 回复  |  直到 14 年前
        1
  •  3
  •   Peter Tillemans    14 年前

    实际上,使用Hibernate或JPA可以将数据库差异抽象掉。

    通过一个依赖注入框架(如Spring或Guice),您可以创建2个服务实例,这些实例只在注入的持久性管理器中有所不同。

    在这种情况下,您可以为2个数据库保持几乎100%的代码相同,这保证它们不会随着时间而失去同步。

        2
  •  0
  •   Sjoerd    14 年前
    • 为数据存储创建一个接口,并在应用程序中使用它
    • 创建一个抽象类来实现这个接口,并实现MySQL和Oracle的共同功能。
    • 创建两个类,一个用于MySQL,一个用于Oracle,用于实现特定于数据库的内容。
    • 在配置中,指定要使用的类(MySQL或Oracle数据库类)。
        3
  •  0
  •   keuleJ Tigran    14 年前

    也许可以使用类似hibernate的方法,它将数据库从您这里抽象出来。

        4
  •  0
  •   Stephen C    14 年前

    跟进@sjoerd的答案:

    有什么有用的工具或开源库吗?

    Hibernate或其他一些JPA实现是您的最佳选择。

    或者,Spring有一些JDBC支持类来完成一些工作…如果你能找出不同的选择中哪一个适合你的需求。

    不幸的是,实现针对多个数据库后端工作的应用程序是一项艰巨的工作,无论您如何做。根据我的经验,您最终得到的解决方案通常不如针对一个且只有一个数据库后端的解决方案好。

    如果我有办法的话,拒绝实现SQL标准的数据库供应商将首先面对墙…革命来了。