Win7 64位系统 Matlab 访问 Mysql 数据库(详细!)

来源:互联网 发布:c语言中竖线 编辑:程序博客网 时间:2024/05/20 05:12

 Win7   64位系统 Matlab 访问 Mysql 数据库

PS:  看了很多网上用Matlab 连接Mysql 的技术贴,但是实际自己操作时总是出现问题,现写下详细的技术贴,希望以后少走弯路!后续还会写一些matlab的数据库语句!

实例:

I)下载得到mysql-connector-java-5.1.35-bin.jar;

http://dev.mysql.com/downloads/connector/j/

下载:mysql-connector-java-gpl-5.1.35.msi   (不用担心这个是32位的)

运行——C:\ProgramFiles (x86)\MySQL\MySQL Connector J——mysql-connector-java-5.1.35-bin.jar

II)复制至D:\ProgramFiles\Matlab\R2009b\java\jar\toolbox 文件夹下;

III)对路径D:\Program Files\Matlab\R2009b\toolbox\local 下得classpath.txt 文档,增加了一句话,用来加载mysql的jdbc驱动

$matlabroot/java/jar/toolbox/mysql-connector-java-5.1.35-bin.jar, 关闭matlab,重新打开,一切OK。

注意:1. Classpath.txt 里直接添加$matlabroot/java/jar/toolbox/mysql-connector-java-5.1.35-bin.jar  即可。不要前面加#

2. mysql-connector-java-5.1.35-bin.jar 版本要一致

3. conn =database(‘test’,'root','123456','com.mysql.jdbc.Driver','jdbc:mysql://127.0.0.1:3306/test‘)

conn =

       Instance: 'imgtograph'
       UserName: 'root'
         Driver: []
            URL: []
    Constructor: [1x1 com.mathworks.toolbox.database.databaseConnect]
        Message: 'Unable to find JDBC driver.'
         Handle: 0
        TimeOut: 0
     AutoCommit: 'off'
           Type: 'Database Object'

错误:'Unable to find JDBC driver.'
解决: 1.  test 必须是数据库名,而不是连接名   (当发现 mysql-connector-java-5.1.35-bin.jar 复制处和 classpath.txt 都没错时,检查你的语句是否有问题!)

2. 要重启matlab

conn=database('123','root','123456','com.mysql.jdbc.Driver','jdbc:mysql://127.0.0.1:3306/123')

 

conn =

 

       Instance: '123'

       UserName: 'root'

         Driver: 'com.mysql.jdbc.Driver'

            URL: 'jdbc:mysql://127.0.0.1:3306/123'

    Constructor: [1x1com.mathworks.toolbox.database.databaseConnect]

        Message: []

         Handle: [1x1com.mysql.jdbc.JDBC4Connection]

        TimeOut: 0

     AutoCommit: 'on'

           Type: 'Database Object'

成功!

关于  matlab 查询 mysq 语句:

conn=database('ryzh','root','9101','com.mysql.jdbc.Driver','jdbc:mysql://192.168.0.100:3306/ryzh')


sql=['SELECT A.date, B.symbol,A.Aum,B.EndQty,B.Tclose,A.CS  FROM A JOIN B on A.date = B.date WHERE A.date = curdate()-1']


curs = exec(conn, sql);
curs =fetch(curs)
Position= curs.data;


注意: 1.  ryzh 是数据库名

            2.    sql  要写对  (将sql 语句放到  NAVICAT 里运行!!不能运行,就是语句发生了错误,数据读不了

            3.   exec , fetch  读出来是结构体

            4.   curs.data 是数据   ( 总之:sql 要写对,才能读出来数据)

 

参考:1. http://blog.sina.com.cn/s/blog_5071eb880100w1i3.html     matlab连接mysql的安装详细贴!

2. http://www.blogjava.net/qileilove/archive/2014/05/08/413436.html   matlab 写mysql 查询语句贴!

 

1 1
原创粉丝点击