观点一
MATLAB怎样连接MYSQL数据库(2013-06-08 17:58:42)
1.找到MYSQL的JDBC的JAR包,见这个网址:http://bbs.tucue.com/showtopic.a ... topicid=657&go=next,虽然不太官方,不过好使就行~
2.解压缩,并将mysql-connector-java-5.1.7-bin.jar文件拷贝到D:/program files/MATLAB/R2009a/java/jar/toolbox,看个人情况这个~
3.到D:/program files/MATLAB/R2009a/toolbox/local,找到classpath.txt文件,打开,并添加用来加载mysql的jdbc驱动
$matlabroot/java/jar/toolbox/mysql-connector-java-5.1.7-bin.jar
-------到这里驱动就算好了,打开MATLAB-----------
4.q=database('dqrecord','root','root','com.mysql.jdbc.Driver','jdbc:mysql://127.0.0.1:3306/dqrecord');
MATLAB官方http://www.mathworks.com/access/ ... se/ug/database.html
有说明,help中也有说明,不过容易把自己搞晕啊,我试验了多次搞明白了
第一个参数:数据库的名称,就是要操作的数据库的名称
第二个参数:用户名
第三个参数:密码
第四个参数:连接的驱动,这里就写这个,不用改
第五个参数:数据库的连接路径吧,jdbc:mysql://,前面这个是jdbc,用mysql数据库,后边是具体的路径,数据库的IP,端口,和数据库的名称,跟第一个参数一样
网上有人就把这个搞错了,我最开始也搞错了
-------------------------------------------------
然后就可以试试啦,ping(q)
ok~
哈哈,这个博客没啥人知道,就当作日记~
-------------------------------------------------
接着
cursorA = exec(q,'select * from dqrecord limit 100');
没结果是不?这句话只是个语句,要执行再来一句:
cursorA=fetch(cursorA) ;
这句话真形象~
cur=cursorA.data就是数据,是一个CELL结构
如果想得到某一列的值,可以先求出cur中共有多少列
num=rows(cursorA)
再把CELL结构转换成MATRIX结构
cur = cell2mat(cur);
如果想取第一列,则可以如下写
a=cur(1:num,1);
则查询结果的第一列就加到了向量a中
观点二
先要安装mysql驱动程序包,详细步骤如下:
Step 1: 将mysql-connector-java-5.1.7-bin.jar文件拷贝到......\MATLAB\R2009a\java\jar\toolbox
Step 2: 到......\MATLAB\R2009a\toolbox\local目录下,找到classpath.txt文件,打开,并添加用来加载mysql的jdbc驱动语句:
$matlabroot/java/jar/toolbox/mysql-connector-java-5.1.7-bin.jar
Step 3:重新打开MATLAB即可
驱动程序安装成功后,接来下要是matlab连接mysql数据库的代码:
conn =database('databasename','username','password','driver','databaseurl')
连接成功后,返回连接对象。
参数如下:
*databasename: 数据库名称.
*driver: JDBC driver.
*username and password: 用户名和密码.
*databaseurl: 类似于jdbc:subprotocol:subname. subprotocol 是数据库类型,
subname 类似于//hostname:port/databasename.
如果matlab和数据库建立了连接,将返回类似于如下信息:
Instance: 'SampleDB'
UserName: ''
Driver: []
URL: []
Constructor: [1x1 com.mathworks.toolbox.database.databaseConnect]
Message: []
Handle: [1x1 sun.jdbc.odbc.JdbcOdbcConnection]
TimeOut: 0
AutoCommit: 'off'
Type: 'Database Object'
连接mysql的代码如下:
conn = database('tissueppi','root','root','com.mysql.jdbc.Driver','jdbc:mysql://localhost:3306/tissueppi');
连接成功后,就可以用exec函数执行sql语句
exec函数执行sql语句并返回一个开指针
语法如下:
curs = exec(conn,'sqlquery')
例如:curs = exec(conn, 'select * from customers')
执行完查询后,还要将查询结果从开放cursor对象导入到对象curs中,该功能是用
cursor.fetch函数实现的。
语法如下:
curs = fetch(curs)
使用curs.Data来显示数据,curs.Data返回一个CELL结构,可以先把CELL结构转换成
MATRIX结构再取值:
cur =cell2mat(cur)
a=cur(1,1);
则查询结果就加到了向量a中
注意:
在exec函数执行查询过程中,有的sql语句要输入变量,这时可使用strcat函数完成该
功能。
t = strcat(s1, s2, s3, ...)
for(t=1:10)
sql1 = strcat('select count(did) from rss_genepairs_u where gocc>=',num2str(t),' || gomf >= ',num2str(t),' || gobp >= ',num2str(t));
end
完整代码如下:
conn = database('tissueppi','root','root','com.mysql.jdbc.Driver','jdbc:mysql://localhost:3306/tissueppi');
for t=0.5:0.01:0.91
for x=0.5:0.1:11
sql = strcat('select count(did) from rss_genepairs_x2 where score <=',num2str(x),' and did in(select did from rss_genepairs_u where gocc >=',num2str(t),' || gomf >= ',num2str(t),' || gobp >= ',num2str(t),')');
aTemp = exec(conn,sql);
aTemp = fetch(aTemp);
a = aTemp.Data;
a = cell2mat(a);
a= a(1,1);
end
end
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">mysql> show variables like 'port';
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Conten……
MySQL基本操作,新手入门宝典
以下的文章主要向大家描述的是MySQL基本操作,MySQL在实际操作中是经常被用到的,所以对MySQL的基本内容的了解也是一件很重要的事项,以下的文章就是对MySQL基本操作的详细描述。
登陆数据库
D:\phpStudy\MySQL\bin>MySQL -uroot -proot
查看数据库
MySQL> show databases;
选择数据库
MySQL> use bugfree;
设置字符集
MySQL> set names 'gbk';
查询数据库中的表
MySQL> show tables;
MySQL基本操作创建表
MySQL> create table test(
-> tid int(10) not null,
-> tname varchar(100) not null,
-> tdate datetime not null default '0000-00-00',
-> primary key (tid));
查看表结构
MySQL> desc test;
添加列
MySQL> alter table test add(tage int(3));
修改原表结构
MySQL> alter table test modify tage int(5) not null;
修改列的默认值
MySQL> alter table test alter tage set default '0';
去掉列的默认值
MySQL> alter table test alter tage drop default;
删除列
MySQL> alter table test drop column tage;
插入数据
MySQL> insert into test(tid,tname,tdate) value(1,'yangjuqi','2008-03-21');
查询数据
MySQL> select * from test;
模糊查询
MySQL> select * from test where tname like '%杨%';
修改数据
MySQL> update test set tname='张三' where tid='2';
MySQL基本操作删除数据
MySQL> delete from test where tid='2';
删除表
MySQL> drop table test;
重命名表
MySQL> alter table test rename testbak;
分页查询(limit 起始行,取多少行)
MySQL> select * from testbak limit 2,1;
刷新数据库
MySQL> flush privileges;
显示数据库版本
MySQL> select version();
显示当前时间
MySQL> select current_date;
修改用户密码
D:\phpStudy\MySQL\bin>MySQLadmin -uroot -proot password yangjuqi
将查询出的数据写入文件
MySQL> select * from testbak into outfile "d:/test.txt" fields terminated by ",";
查看数据库状态
MySQL> status;
MySQL基本操作查看所有编码
MySQL> show variables like 'character_set_%';
导入sql文件命令
MySQL>source d:/MySQL.sql;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| test |
| test_db |
+--------------------+
4 rows in set (0.16 sec)
mysql> show create database test_db
fantuanxiaot 发表于 2015-2-2 17:24
观点一
MATLAB怎样连接MYSQL数据库(2013-06-08 17:58:42)
扫码加好友,拉您进群



收藏
