2012-01-13 107 views
3

PostgreSQL數據庫我想我的Postgres數據庫連接在MATLAB和它扔了我的錯誤,說明連接通過MATLAB錯誤

"'JDBC Driver Error: org.postgresql.Driver. Driver Not Found/Loaded.'"

下面是我用我的連接方法。

conn = database('postgres','username','password','org.postgresql.Driver', 'jdbc:postgresql://localhost:5432/postgres=postgres'); 

之後,它拋出了錯誤。

我看過論壇,他們告訴我將postgres jar文件添加到MATLAB目錄工具包文本文件中,如下所示。

C:\Program Files\PostgreSQL\pgJDBC\postgresql-8.4.702.jdbc3.jar 
C:\Program Files\PostgreSQL\pgJDBC\postgresql-8.4.702.jdbc4.jar 

我不知道我要去哪裏錯了。請指教。

謝謝。

回答

2

在連接到數據庫之前,應該將帶有JDBC驅動程序的jar文件添加到動態java類路徑中。我相信你可以根據你的要求只添加一個文件。檢查版本差異here

爲了避免警告如果路徑已經是一個jar文件添加一些檢查:

%# add class path (if not in the class path) 
p = 'C:\Program Files\PostgreSQL\pgJDBC\postgresql-8.4.702.jdbc3.jar'; 
if ~ismember(p,javaclasspath) 
    javaaddpath(p) 
end 
+0

它的工作原理。但不知何故,我似乎無法查詢從數據庫中的信息到MATLAB。這裏是我嘗試使用的代碼:'e = exec(conn,'SELECT * FROM cath_2'); e = fetch(e);'。這是錯誤,'???對'struct'類型的輸入參數未定義的函數或方法'fetch'。' – Jeiman 2012-01-13 19:30:29

+1

如果您使用另一個變量返回讀取結果,那麼該怎麼辦? 'rs = fetch(e);'我通常只是做'rs = fetch(exec(conn,qry));'。如果它不起作用,請嘗試使用另一個JDBC驅動程序。 – yuk 2012-01-13 19:38:04

+0

'exec'實際上返回一個遊標對象,而不是一個結構體。你在使用數據庫工具箱嗎? – yuk 2012-01-13 19:47:23