2014-01-07 25 views
0

我已經下載並導入到我的,理應支持Linux(儘管只是在SUSE Linux測試)項目this JDBC驅動程序。爪哇 - 連接到SQL Server數據庫在Linux上

我想要的是能夠通過Java在Linux上使用密度纖維板數據庫。查詢顯然需要運行一些東西,而不是簡單地連接到數據庫 - 如果我正確理解這一點的話。 我在SO上發現了一個question,似乎有關於我的問題的寶貴信息。

所以我就在想一個freetds的+ JDBC組合。查詢是否按預期執行,還是必須在Windows上原生使用數據庫?後者基本上壓縮了Java提供的操作系統不可知論,如果可能的話,我希望避免這種操作。

數據庫本身是沒有什麼花哨,只有幾張桌子 - 這只是一個作業,畢竟。 如果需要,我會提供更多信息。

+0

如果你的項目是在java和你正在使用JDBC驅動程序,你爲什麼會需要freetds的? – kosta

+0

@kosta JDBC驅動程序可以單獨用於執行查詢嗎?如果是這樣,我會嘗試這種方式。但是,我如何連接和配置服務器 - 端口等? – Venom

+0

你真的使用SQL Server(在另一臺Windows機器上)?如果是這樣,你可以註冊驅動程序爲: Class.forName(...); 並構建您的jdbc網址爲: jdbc:sqlserver:// [serverName [\ instanceName] [:portNumber]] [; property = value [; property = value]] – kosta

回答

2

mdf文件可能是舊的(基於JET)的Microsoft Access數據庫文件,因此SQL Server的JDBC驅動程序(完全不同的產品)不會爲您提供多大幫助。在這裏,有幾篇文章解釋瞭如何使用JDBC-ODBC橋通過ODBC驅動程序繞道訪問Access數據庫,但是因爲您特別提到Linux不會幫助您。

我看到了兩個可能的(免費)方法:

  1. 使用開源jackcess包,允許跨平臺開放的Java程序,讀取和寫入MS Access數據庫
  2. 轉移MSACCESS數據庫的內容文件添加到具有本機Java驅動程序的某些數據庫(即,大多數不是MS Access)。

然而,一個MDF文件也可以是一個SQLServer數據庫,但Linux下使用該數據庫也將是相當棘手的,因爲你需要的SQL Server的一些版本中打開它 - 看到here一些有關如何將這樣一個mdf文件「附加」到已安裝的SQLServer實例的詳細信息 - 但據我所知,目前還沒有在Linux下運行的SQL Server版本。所以,除非你能找到一些Windows機器上運行的SQLServer,然後使用JDBC驅動程序連接到它,你有前面提到的這兩個選項可能是有效的替代品(即選項1 =您的數據複製到一個MSACCESS文件和訪問該文件與jackcess或選項2,將數據複製到一些Linux容忍的數據庫與一個體面的JDBC驅動程序,並使用它)

+1

我懇求在mdf文件上有所不同:它也是「典型」由SQL Server生成和使用的文件類型。看到這裏:http://stackoverflow.com/questions/1175882/what-is-an-mdf-file – Nevoris

+0

@Nevoris我基於我說明什麼OP說,即他有一個.mdf文件,因爲我覺得它很漂亮不常見的只是給某人一個SQLServer的數據文件 - 你寧願得到某種轉儲文件 - 我將其縮小到一個MSAccess數據庫。但到目前爲止,他還不清楚他是想連接到SQL服務器,還是想要使用他在某處獲得的mdf文件 - 還可以看看我的要求,在OP下面澄清問題。 – fvu

+0

的確,我之所以挑剔,是因爲你對這個文件看起來頗爲自信,而且它可能誤導了毒液。讓我們等待更多的解釋:) – Nevoris

0

有人誤導了我的問題(我不是英語母語,可能是) ,該數據庫本意是在本地運行(顯式不在遠程服務器上),這在SQL Server + Linux組合中不會發生。葡萄酒是一種可能性,但這太麻煩了。因此,解決方案是簡單地在Windows上使用SQL Server,或者使用像MySQL這樣的替代跨平臺RDBMS。 儘管如此,我會接受fvu的編輯答案,並希望感謝其他用戶在他們投資自己的答案時。