2013-04-03 45 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並且沒有數據庫特定功能)