【问题标题】:Bridge Between Oracle and MS SQL ServerOracle 和 MS SQL Server 之间的桥梁
【发布时间】:2013-03-24 21:21:55
【问题描述】:
我们正在制作一个依赖于机器的应用程序。
现在我们在多台客户端机器上部署我们的应用程序,但问题是每个客户端都有来自不同供应商的数据库。目前我们正面临SQL Server 和Oracle 之间的冲突。
我们的应用程序建立在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 并且没有特定于数据库的功能)进行数据库操作