MySQL and Matlab

2019-04-10 23:52发布

I want to interact with a MySQL database from Matlab.
I found a mysql "library" for matlab here and the same on mathworks.

I followed the instructions to compile the library and the compilation seems to be successful. I get a mex32 file at the end. Only, the instructions on the first page refer to a Dll that I need to use (I guess that a Dll was supposed to be generated).

I am not familiar with the mex compiler or with compiling external modules for Matlab.
Am I missing something trivial? Where is the Dll supposed to be?

Thanks.

3条回答
叛逆
2楼-- · 2019-04-11 00:21

I'd recommend using java to connect MATLAB and MySQL (or any other db if required).

The java database connector is simple to set up. I built a simple java class to connect to the database - see previous posting for a crude but working solution.

The MATLAB code works as indicated

% 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)

Once the connection is open I can then use the java methods to submit SQL queries, create tables, insert data etc. I'd never used java before but I downloaded Netbeans and I was away.

查看更多
劳资没心,怎么记你
3楼-- · 2019-04-11 00:22

OK, here is the solution to my problem.
The compilation does generate a mex32 file (32 is because I compiled it under a 32bit systme). You can check the output file of the compilation by running mexext. So apparently a mex32 file is a compiled version of the C file.
Once I placed the file in a directory that is in the Matlab's path it worked.

I guess the reference to the Dll in the link I provided is either obsolete or wrong.

查看更多
Ridiculous、
4楼-- · 2019-04-11 00:33

The reference to the dll is obsolete.

When you compile a mex function on Windows, you compile it as a dll (not an .exe). Thus, compiled mex functions used to have the extension .dll. Mex-functions with .dll extensions still work, but there is a warning that this might stop being the case in the future.

When 64-bit Windows arrived, TheMathWorks needed a way that people were to be able to compile the same mex-function for both Win32 and Win64, thus they changed the extension to .mexw32 and .mexw64, respectively. Apparently, they did not update the documentation completely.

查看更多
登录 后发表回答