代码之家  ›  专栏  ›  技术社区  ›  Shaihi

mysql和matlab

  •  4
  • Shaihi  · 技术社区  · 14 年前

    我想与Matlab中的mysql数据库交互。
    我发现了一个 mysql matlab的“库” here 和同样的 mathworks .

    我按照说明编译了这个库,编译似乎很成功。最后我得到了一个mex32文件。只有第一页上的说明引用了我需要使用的一个dll(我猜应该生成一个dll)。

    我不熟悉MEX编译器,也不熟悉为Matlab编译外部模块。
    我错过了什么小事吗?DLL应该在哪里?

    谢谢。

    3 回复  |  直到 14 年前
        1
  •  4
  •   Jonas    14 年前

    对dll的引用已过时。

    在Windows上编译mex函数时,将其编译为dll(而不是.exe)。因此,编译后的mex函数以前具有扩展名.dll。扩展名为.dll的mex函数仍然可以工作,但有一个警告,说明将来可能不再出现这种情况。

    当64位Windows出现时,ThemathWorks需要一种方法,人们能够为win32和win64编译相同的mex函数,因此他们将扩展名分别更改为.mexw32和.mexw64。显然,他们没有完全更新文档。

        2
  •  4
  •   Community prosti    7 年前

    我建议使用Java连接Matlab和MySQL(或者如果需要的话,其他任何数据库)。

    Java数据库连接器很容易设置。我构建了一个简单的Java类来连接到数据库 previous posting 一个粗糙但有效的解决方案。

    matlab代码的工作原理如图所示。

    % include java class
    import Jam.ConnectToDatabase
    
    % set up database connection info
    userName='myName';
    userPassword='myPassword';
    databaseUrl='jdbc:mysql://glnd2818898.internal.net/2000';
    
    % create java class instance and open connection to the database
    ctd = ConnectToDatabase;
    ctd.openConnection(userName, userPassword, databaseUrl)
    

    一旦连接打开,我就可以使用Java方法提交SQL查询、创建表、插入数据等。我以前从未使用过Java,但我下载了。 Netbeans 我不在家。

        3
  •  0
  •   Shaihi    14 年前

    好的,这是我的问题的解决办法。
    编译确实会生成一个mex32文件(32是因为我是在32位系统下编译的)。您可以通过运行 mexext . 所以很明显,mex32文件是 C 文件。
    一旦我把文件放在Matlab路径中的一个目录中,它就工作了。

    我想我提供的链接中对dll的引用要么过时,要么是错误的。