程序员人生 网站导航

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

栏目:数据库应用时间:2015-04-28 07:52:40

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

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

实例:

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

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

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

运行――C:ProgramFiles (x86)MySQLMySQL Connector J――mysql-connector-java⑸.1.35-bin.jar

II)复制至D:ProgramFilesMatlabR2009bjavajar oolbox 文件夹下;

III)对路径D:Program FilesMatlabR2009b oolboxlocal 下得classpath.txt 文档,增加了1句话,用来加载mysql的jdbc驱动

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

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

2. mysql-connector-java⑸.1.35-bin.jar 版本要1致

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⑸.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()⑴']


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 查询语句贴!

 

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐