2013-01-08 107 views
1

我正在考慮爲Java項目使用Microsoft訪問數據庫。我的問題是,如果我使用Microsoft Access數據庫並完成項目並將其作爲任何計算機/操作系統上的jar文件運行,則任何計算機/操作系統是否需要安裝Microsoft訪問權限,特別是在數據庫需要放在java程序的GUI上,程序的管理員可以添加和刪除條目。微軟訪問數據庫到Java

+0

我認爲你需要在jar運行的操作系統上有一個功能性的ODBC支持。 – amphibient

+1

你可以保持你的數據庫在單一的服務器,並使用ODBC數據源連接到數據庫,多數民衆贊成在.. –

+0

據我所知,jdbc-odbc的方式是用來訪問數據庫文件。那麼,ODBC數據源應該單獨配置。 –

回答

1

您將不得不在任何訪問數據庫的機器上安裝access odbc驅動程序。我想你可以通過安裝Access運行時的東西而不安裝所有的Access來做到這一點。請記住,這類數據訪問是文件級的,所以你的性能會很差。我建議你使用一個真正的數據庫(postgres,mysql,sql server,oracle)或者可能是一個輕量級的數據庫,例如SQL Server express,然後使用odbc-jdbc橋接器或最好是本機jdbc驅動程序訪問該數據庫。使用本機jdbc驅動程序可讓您從非Windows環境運行您的應用程序。

+0

它可能不會很差。這一切都取決於你在做什麼。 – Fionnuala

0

您可以通過每個Microsoft Windows系統上的JDBC-ODBC bridge使用Access數據庫,而無需安裝Microsoft Access。您只需要以前稱爲Jet Database Engine的Access數據庫引擎(ACE)。 ACE是當前Windows版本的一部分。對於較老的,可能需要安裝Microsoft Data Access Components(MDAC)。

使用從Java Access數據庫有一些缺點:

  • 這是1型驅動器,具有本地代碼。通常,純Java JDBC驅動程序的性能更高。
  • 對於JDK 6,JDBC-OLE橋有點enhanced。但是charset和CLOB仍然存在一些問題。
  • 您的應用程序僅限於Microsoft Windows操作系統。
  • 按照JDK 7 JDBC-ODBC bridge guide的JDBC-ODBC橋將在JDK 8被移除:

的JDBC-ODBC橋應被視爲過渡溶液;它將在JDK 8中刪除。另外,Oracle不支持JDBC-ODBC Bridge。 Oracle建議您使用數據庫供應商提供的JDBC驅動程序而不是JDBC-ODBC Bridge。

因此,如果您有任何機會爲您的項目使用其他數據庫,則應避免將Java Access與Java一起使用。

JDBC驅動程序有很多更好的選擇。

如果你想有一個小尺寸嵌入式數據庫,主要有:

(Java DB的,H2和HSQLDB是純Java解決方案)

如果你喜歡一個客戶端服務器解決方案,對於大多數商業和開源存在全面的JDBC驅動程序。