我想編寫一個Java程序,它可以自動執行ODBC數據源管理員在Windows中執行的工作。Java中的ODBC連接安裝
也就是說,給定一個ODBC連接名稱和硬盤上的數據庫路徑,我希望它創建連接。
我真的不知道從哪裏開始。我看着this,但它表示這是爲C,我不認爲這是非常有用的。如果任何人都可以爲我指出正確的方向,我將不勝感激。
(我知道這個問題是真的含糊不清,但是這是我得到的所有信息。)
我想編寫一個Java程序,它可以自動執行ODBC數據源管理員在Windows中執行的工作。Java中的ODBC連接安裝
也就是說,給定一個ODBC連接名稱和硬盤上的數據庫路徑,我希望它創建連接。
我真的不知道從哪裏開始。我看着this,但它表示這是爲C,我不認爲這是非常有用的。如果任何人都可以爲我指出正確的方向,我將不勝感激。
(我知道這個問題是真的含糊不清,但是這是我得到的所有信息。)
所有ODBC配置都在Windows註冊表中,或者在Linux中爲odbc.ini
(我沒有在其他平臺上使用過ODBC)。首先,您必須使用ODBC管理器創建此類配置,然後檢查配置中保存的內容以及執行相同操作的寫入程序。如果您使用Windows 32位,請檢查註冊表HKEY_LOCAL_MACHINE\SOFTWARE\ODBC
。 對於32位應用程序和64位應用程序,Windows 64位具有不同的配置(只需在註冊表中查找odbc.ini
字符串)。
我認爲Java是不會更改Windows註冊表中一些最好的語言,但與Java中,你可以創建能夠通過regedit.exe
進口.reg
文本文件,或者您可以使用其他語言如Python的Win32擴展(主動Python有它默認)。
瞭解問題的加分。不幸的是,我認爲這個人正在尋找一個支持編輯DSN而不是批處理文件解決方案的Java .jar庫。 – djangofan 2011-06-29 16:08:58
問題的答案是您不需要註冊的DSN。
以下是使用系統ODBC驅動程序從Java使用ODBC連接(而非JDBC)的示例。除了修改註冊表,以創建一個註冊的DSN,你的選擇是使用一個未註冊的DSN,就像這樣:
Driver=sun.jdbc.odbc.JdbcOdbcDriver
Source=jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=C:/Dir/DB/MyDB.mdb;
或者,使用SQL Server:
Driver=sun.jdbc.odbc.JdbcOdbcDriver
Source=jdbc:odbc:Driver={SQL Server};SERVER=127.1;DATABASE=MyDB;UID=sa;PWD=mypass
檢查這一個。 。 Java數據庫連接(JDBC)支持基於ODBC的數據庫並提供獨立的數據庫。
Connection connection = null;
try {
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
connection = DriverManager.getConnection("connection string", "userName", "password");
} catch (SQLException e) {
}
return connection;
String driver ="sun.jdbc.odbc.JdbcOdbcDriver"
String url = "jdbc:odbc:Driver={Microsoft Access Text Driver (*.txt, *.csv)};DBQ=C:/CSVFolder
query = select * from myfile.csv
這是如何回答這個問題的?請提供更多的上下文,這是一個脫離上下文的代碼片段。 – 2012-12-30 02:36:26
我從來沒有到之前連接到MS SQL服務器。我一直使用DB2或Derby,MYSQL,創建連接的過程都一樣。這是我必須爲SQL Server做的事情。
private final String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
Class.forName(driver);
url="jdbc:odbc:;DRIVER={SQL Server};SERVER="+server+","+port+";DATABASE="+dbName;
connection = DriverManager.getConnection(url,user,password);
我整天都在使用JDBC。我認爲你的問題是一個很好的問題,因爲有時你希望能夠從Java創建一個ODBC DSN而不需要使用ODBC控制面板。原因很簡單:DSN可能尚未存在,並且數據庫的JDBC端口可能沒有正在偵聽。目前,我通過運行.reg文件從批處理文件創建DSN。如果可能的話,用Java進行編程會更好。 – djangofan 2011-06-29 16:06:56