【问题标题】:Connect to postgresql database via MATLAB error通过 MATLAB 错误连接到 postgresql 数据库
【发布时间】:2012-01-13 19:03:10
【问题描述】:

我正在尝试在 MATLAB 中连接我的 Postgres 数据库,它给我一个错误提示

"'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 

我不知道还有哪里出错了。请指教。

谢谢。

【问题讨论】:

    标签: database postgresql matlab jdbc database-connection


    【解决方案1】:

    在连接到数据库之前,您应该将带有 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
    

    【讨论】:

    • 它有效。但不知何故,我似乎无法将数据库中的信息查询到 MATLAB 中。这是我尝试使用的代码:e = exec(conn,'SELECT *FROM cath_2'); e = fetch(e);。这是错误,??? Undefined function or method 'fetch' for input arguments of type 'struct'.
    • 如果使用另一个变量返回获取结果呢? rs = fetch(e); 我通常只做rs = fetch(exec(conn, qry));。如果它不起作用,请尝试使用另一个 JDBC 驱动程序。
    • exec 实际上返回一个游标对象,而不是一个结构。您在使用数据库工具箱吗?
    • 对不起,我写错了 url 连接。现在已经修好了。如果你不介意帮助我,我还有另一个问题。我正在尝试在 MATLAB 中查询一个表,例如 rs = fetch(exec(conn, 'SELECT * FROM cath_2'));,尽管它确实存在,但它以某种方式无法识别数据库中的表。它声明'Invalid Cursor: ERROR: relation "cath_2" does not exist
    • 尝试查询'show tables'。它应该返回数据库中的表列表。也许您连接到错误的数据库?
    猜你喜欢
    • 2020-10-27
    • 2013-06-09
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 2016-09-20
    • 2021-12-02
    • 1970-01-01
    相关资源
    最近更新 更多