1
下载Connector/ODBC
该软件相当于R与Mysql的桥梁,下载地址请看图片;
R连接数据库(MySql)
2
安装Connector/ODBC
下载后,双击安装文件,默认选项安装,只管点击下一步直至“finish",成功安装后将在C:\Program Files\MySQL\中看到如下文件(Connector ODBC 5.3);
R连接数据库(MySql)
3
配置数据源
打开”控制面板——>管理工具“,找到”数据源(ODBC)“并双击;
R连接数据库(MySql)
4
添加ODBC Driver
单击右侧”添加“按钮,选中ODBC Driver,在d出的对话框中依次填写各项信息:
data source name:随意填,如mysql_data
description:随意填,如mydata
TCP/IP Server:填写服务器IP,通常为”127.0.0.1“
user:填写你的mysql用户名
password:填写你的mysql密码
最后在数据库中选中你将要 *** 纵的数据库,单击完成。
R连接数据库(MySql)
R连接数据库(MySql)
END
二、连接数据库
1
R中创建数据框
打开R软件,将你需要保存到数据库的数据传入数据框。如从桌面导入.csv数据到数据框myframe
file <- "C:/Users/Administrator/Desktop/TEST.csv"
myframe <- read.table(file, header = TRUE, sep = ",")
myframe[1:10,] #查看你传入数据框中的数据
R连接数据库(MySql)
2
通过R创建数据库表
此处将上面myframe数据框中的数据存入数据库中,并将表名命名为”population“;
install.packages("RODBC") #如果你还没有安装此包
library(RODBC)
channel <- odbcConnect("mysql_data", uid = "root", pwd = "******")
sqlSave(channel, myframe, tablename = "population", append = FALSE)
close(channel)
R连接数据库(MySql)
3
校验结果
打开你的数据库,在数据库中查看刚才用R创建的数据库表是否存在。该例用R创建的数据库表名为”population“,打开数据库,发现”population“表已经成功创建到数据库。心痒痒吧,还等神马,赶紧动手试试!!!
R连接数据库(MySql)
R连接数据库(MySql)
END
后记
R与数据库(Mysql)间的桥梁已经搭好,并在案例中演示了向数据库存入数据的过程,相信你早已的脑洞大开,接下来从数据库中删出某个表、取数据等就不是问题了。
R连接数据库(MySql)
END
注意事项
细心的你已经发现,在配置数据源的第四个步骤中设置的data source name值”mysql_data",正是R中创建数据库连接odbcConnect函数的第一个参数值。
如何把R语言中的中文数据导入到mysql一些常用的数据,处理好,放在mySQL里,以后使用起来也方便。
可以用R直接进行分析,具体步骤如下:
1、R下载RODBC包,安装好。
2、在http://dev.mysql.com/downloads/connector/odbc
下载mySQL ODBC,安装好。
3、windows:控制面板->管理工具->数据源(ODBC)->双击->添加->选中mysql ODBC driver一项
填写:data source name 一项填入你要使用的名字,自己随便命名,例如:mysql_data
description一项随意填写,例如mydata
TCP/IP Server 填写本机服务器IP,一般为:127.0.0.1
user 填写你的mysql用户名
password 填写你的mysql密码
然后数据库里会出现你的mysql里的所有数据库,选择一个数据库。
确定。
4、打开R的界面调用数据库:
1 2 3 4
library(RODBC)channel <- odbcConnect("mysql_data", uid="root",pwd="123")sqlTables(channel)#查看数据中的表 data<-sqlFetch(channel,"kegg")# 查看表的内容,存到数据框里
链接数据库其实很简单具体代码如下:package db
import java.sql.*
public class DB {
private Connection con=null
private Statement stmt=null
private ResultSet rs=null
public DB(){}
public Connection getConnection(){
String url="jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8"
String dbuser="root"
String dbpass="sa"
String name="com.mysql.jdbc.Driver"
if(con==null){
try{
Class.forName(name).newInstance()
}catch(Exception e){
System.out.println(e)
}
try{
con=DriverManager.getConnection(url,dbuser,dbpass)
}catch(Exception e){}
}
return con
}
public ResultSet exeQuery(String sql){
try{
con=getConnection()
if(con==null){
throw new Exception("没有可连接对象")
}
stmt=con.createStatement()
rs=stmt.executeQuery(sql)
}catch(Exception e){}
return rs
}
public boolean update(String sql){
boolean flag=true
try{
con=getConnection()
if(con==null) throw new Exception("没有可连接对象")
stmt=con.createStatement()
stmt.executeUpdate(sql)
}catch(Exception e){
flag=false
System.out.println("异常:"+e)
}
return flag
}
public void close(){
try{
if(rs!=null)try{rs.close()}catch(Exception e){System.out.println("rs"+e)}
try{stmt.close()}catch(Exception e){System.out.println("stmt"+e)}
try{con.close()}catch(Exception e){System.out.println("con"+e)}
}catch(Exception e){}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)