【问题标题】:Bridge Between Oracle and MS SQL ServerOracle 和 MS SQL Server 之间的桥梁
【发布时间】:2013-03-24 21:21:55
【问题描述】:

我们正在制作一个依赖于机器的应用程序。
现在我们在多台客户端机器上部署我们的应用程序,但问题是每个客户端都有来自不同供应商的数据库。目前我们正面临SQL ServerOracle 之间的冲突。
我们的应用程序建立在Oracle 数据库上,现在我们要访问SQL Server。有什么办法可以做到这一点,因为我对数据库不太感兴趣,我不想更改不同数据库的查询和配置设置。

【问题讨论】:

    标签: java sql-server oracle database-design database-connection


    【解决方案1】:

    您需要的是提供一个提供数据库独立性的层的东西。有多种方法可以做到这一点。

    • 您可以使用 ORM(对象关系映射)技术,例如 JPA(以 Hibernate 为例)。典型的 JPA 实现具有适用于一系列不同数据库的后端。

    • 您可以通过(粗略地说)在不同 SQL 方言之间映射 SQL 语句来使用支持数据库独立性的现有产品。

    • 有人建议使用 ODBC。

    • 您可以为每个后端数据库实现具有不同 DAO 实现类的 DAO API。如果您尽可能地坚持符合 SQL-92 的 DDL 和 DML,那么很有可能在 DAO 实现之间会有很多共同点。 (JDBC 在 API 级别提供数据库独立性,前提是您不使用供应商特定的扩展。我记得 Oracle 的 JDBC 驱动程序以非标准方式执行操作时遇到问题……但他们现在可能已经一起行动了。)


    ...我不想更改不同数据库的查询和配置设置。

    如果您使用 ORM 及其查询语言,则不必这样做。如果你使用 SQL 和 JDBC 来实现你的数据库,那么主要是分别坚持 SQL 标准和标准 JDBC API 方法。

    相关问题:

    【讨论】:

      【解决方案2】:

      推荐的方法是使用像 Hibernate 这样的 ORM 工具。如果这是不可能的,那么使用 StoredProcedures(确保它只使用普通的 PL SQL 并且没有特定于数据库的功能)进行数据库操作

      【讨论】:

        【解决方案3】:

        如有必要,创建链接服务器并使用 openquery。

        http://technet.microsoft.com/en-us/library/ms188279.aspx

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-12
          • 2011-08-26
          • 2011-08-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多