0

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

4

3 回答 3

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 方法。

相关问题:

于 2013-04-03T09:38:01.727 回答
0

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

于 2013-04-03T09:43:30.767 回答
0

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

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

于 2014-04-04T16:09:29.970 回答