采用ODBC与MySQL连接后,Database Toolbox中的函数可以实现数据导入、导出、查询等操作。
参考自MatLab帮助文档。
Connection对象:由database()函数创建连接并保存为数据库连接对象。创建时,matlab自动列出属性。详细properties见文档。
conn = database(mysqlServiceName, username, password);
conn.message %为空时,则连接成功
conn.DataSource %为数据库服务器名称
DatabaseDatastore对象:由DatabaseDatastore()函数创建的对象,存储较大数据。用完需要close()。
close():关闭Connection对象;关闭DatabaseDatastore对象。
sqlwrite():把MatLab中table类型的数据写入数据库。如果表已存在,则追加行(INSERT INTO);如果表不存在,创建新表(CREATE TABLE)
sqlwrite(conn, tablename, data)
sqlwrite(conn, tablename, data, name, value) %name表示database名称;value表示表名
函数databasePreparedStatement要求输入变量conn为JDBC对象。因此采用ODBC连接时,这种方法并不能获得需要的数据。
SQLPreparedStatement对象:可以执行SELECT, INSERT, UPDATE, DELETE和CALL操作的对象。含有绑定到值的参数,即需要使用matlab中的变量构造sql语句时,采用databasePreparedStatement函数构造这种对象。
pstmt表示含有属性的SQL Statement .(SQLPreparedStatement with properties)。属性如下:
- SQLQuery:SQL prepared statement query
- ParameterCount:参数数量
- ParameterTypes:参数类型
- ParameterValues:参数值
query = 'SELECT * FROM table WHERE a = ?';
pstmt = databasePreparedStatement(conn, query);
bindParamValues(): 绑定参数。
selection = 1;
values = 3;
bindParamValues(pstmt, selection, values)
selection:
Example:
1
Example:
[1 2 3]
Data Types:
double
values:
Example:
true
Example:
"USA"
Example:
{true,"USA",2,datetime('now')}
Data Types:
double
|logical
|char
|string
|cell
|datetime
fetch():
results = fetch(conn, pstmt);