matlab 连接sql server 2005

来源:互联网 发布:苹果mac改变用户 编辑:程序博客网 时间:2024/06/06 03:26
from:http://blog.csdn.net/yinxing408033943/article/details/7677769
一、为什么要用JDBC连接
首先,Matlab是通过Java写的,自身处理JDBC方式更加迅速;其次ODBC方式连接Sqlserver最终也是转换为JDBC方式。
二、连接工具准备
1、Sqlserver JDBC驱动
下载地址,现在最新版本为4.0,下载压缩包即可。
下载后解压取其中的sqljdbc4.jar和sqljdbc.jar,其中后者是前者的子集,只要不出问题,直接使用前者就可以了。
设置matlab的启动加载项,打开C:\Program Files\MATLAB\R2012a\toolbox\local\classpath.txt,在文件的最后添加刚才的jar文件,例如:F:/matlab/JDBCDriver/sqljdbc4.jar(注意这里需要用"/")
2、设置SQL Server服务器 
2.1、“开始”→“程序”→“Microsoft SQL Server 2005”→“配置工具”→“SQL Server 配置管理器”→“SQL Server 2005 网络配置”→“MSSQLSERVER 的协议”(此处请选择自己实际用的SQLServer)
2.2、如果“TCP/IP”没有启用,右键单击选择“启动”。 
2.3、双击“TCP/IP”进入属性设置,在“IP 地址”里,可以配置“IPAll”中的“TCP 端口”,默认为1433。 
2.4、重新启动SQL Server或者重启计算机。
3、启动MATLAB,如果启动过程中没有报错,且命令行窗口中没有提示信息,那么这个JDBC Conector就可以用了。
三、连接数据库
1、建立一个到数据库的连接。
假设此处使用的是本地数据库则SQL Server地址是 127.0.0.1,端口是1433,数据库名称是RTQ,用户名是user,密码是pwd,那么用下面的语句建立一个到该数据库的连接:
conn=database('RTQ','user','pwd','com.microsoft.sqlserver.jdbc.SQLServerDriver','jdbc:sqlserver://127.0.0.1:1433;databaseName=RTQ');
2、验证是否连接到数据库
isconnection(conn);%若返回1则认为连接成功。
3、建立一个查询。假设我们想获得名叫tbl的table中的所有数据,那么可以用:
curs=exec(conn,'select * from tbl');
4、获取数据
curs = fetch(curs);
5、关闭数据库连接

close(conn);

附注:

从数据库中读取数据到matlab有三种数据类型(默认为元胞类型cellarray),分别为元胞类型(cellarray),数字型(numeric),结构型(structure)。可以在链接数据库之前通过setdbprefs函数来进行设置。如果数据库文件中全部是数值型数据时最好采用numeric型的数据,这样可以使得读取速度大幅提高,特别是在大型数据读取时非常明显。我曾经从数据库中读取过100万个数据,用cellarray时用了16s,但是用numeric时却只用了8s,速度提高很大啊,对电脑配置不好的来说,很有帮助的。(还有我的电脑很烂,1.3GHz,384M内存,可能让大家见笑了…….) 调用格式: 
setdbprefs(‘datareturnformat’,’numric’)