2013-04-03 48 views
0

我们正在制作一个与机器相关的应用程序。
现在我们在几台客户端机器上部署我们的应用程序,但问题是每个客户端都有来自不同供应商的数据库。目前我们正面临着SQL ServerOracle之间的冲突。
我们的应用程序基于Oracle数据库,现在我们要访问SQL Server。有没有办法做到这一点,因为我是数据库业余爱好者,我不想更改不同数据库的查询和配置设置。
Oracle与MS SQL Server之间的桥梁

回答

3

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

  • 您可以使用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方法。

相关问题:

0

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