转载自:http://www.matlabsky.com/forum-viewthread-tid-10302-fromuid-18677.html
在MATLAB中使用JDBC与数据库进行交互,需要先将驱动程序复制到MATLAB相关目录下,或者设置classpath。
1.下载JDBC驱动。
2.设置matlab的启动加载项,打开C:\Program Files\MATLAB\R2012a\toolbox\local\classpath.txt,在文件的最后添加刚才的jar文件,例如:F:/matlab/JDBCDriver/sqljdbc4.jar(注意这里需要用"/")
3.重新启动matlab,若不报错则认为加载驱动成功
%使用JDBC打开数据库
conn = database('db','user','pwd', 'oracle.jdbc.driver.OracleDriver','jdbc:oracle:thin:@ IP:PORT:SID');
isconnection(conn);%若返回1则认为连接成功。
close(conn);%执行完数据库查询操作后,关闭数据库连接
%数据库相关操作
%先打开数据库连接conn,然后查询并返回游标
curs=exec(conn,'sqlquery');
%把数据库中的数据读取到Matlab中——fetch
curs=fetch(curs,RowLimit);
%把读取到的数据用变量Data保存.
Data=curs.Data;
%养成良好习惯,随手关闭链接对象和游标——close
close(curs);
close(conn);
数据返回类型
从数据库中读取数据到matlab有三种数据类型(默认为元胞类型cellarray),分别为元胞类型(cellarray),数字型(numeric),结构型(structure)。可以在链接数据库之前通过setdbprefs函数来进行设置。如果数据库文件中全部是数值型数据时最好采用numeric型的数据,这样可以使得读取速度大幅提高,特别是在大型数据读取时非常明显。
setdbprefs(‘datareturnformat’,’numric’)
查看数据相关信息
Rows-查看数据行数 调用格式:numrows=rows(curs)
Cols——查看数据列数 调用格式:numcols=cols(curs)
Attr——查看数据属性 调用格式:attribute=attr(curs)
添加数据到表中——insert函数 调用格式:insert(conna,’tab’,colnames,exdata)
conna——链接对象 tab——数据库文件的表名 colnames——数据库表的列名 exdata——matlab变量
如:insert(conna,'try',{'a1', 'a2'},[45 65])
commit(conna)%确认数据更改
更新数据库中的数据——update 调用格式:update(conna,’tab’,colnames,exdata,’whereclause’)
conna——链接对象 tab——数据库文件的表名 colnames——数据库表的列名 exdata——matlab变量 whereclause——SQL的where字句
如:update(conna,'try',{'a1', 'a2'},[45 65],’where XX=’XX’’)
commit(conna)%确认数据更改
建立新表——exec,creat table 调用格式:conna=database('SampleDB','',''); exec(conna,['create table Table(name string,age int)']); close(conna);
Table——表名 name,age——字段名