R CURL 读写数据库操作

#前言

   最近项目用到R语言..感谢瞬间高大上了.昨天弄了一天才弄清楚CURL操作...哎。悲惨。先上个码。以免忘记


#上码

library(DBI)
library(dbx)

setwd("/Users/hubs/Desktop/test/garch")

#https://github.com/r-dbi/RMySQL
initDb <- function(){
  username <- "##";
  password <- "###";
  dbname <- "###";
  host <- "####";
  conn  <- dbConnect(RMySQL::MySQL(), user=username, password=password,dbname=dbname, host=host);
  return(conn);
};

#读取表数据
getTableDatas <- function(conn,table){
  return (dbReadTable(conn,table))
}

#根据名称查找ID
findIdForCodeFromDatas<-function(tableDatas,codeName){
  rid = tableDatas[which(tableDatas$code == codeName),"id"]
  return (rid)
}

#更新或写入数据
updateOrInsert <- function(conn,table,insertDatas,whereCols){
  dbxUpsert(conn, table, insertDatas, where_cols=whereCols)
}

conn    = initDb();
table_ <- "hi"
table_test <- "hi_test"
list_assets <- getTableDatas(conn,table_asset)
table_ok <- "ok"


#records <- data.frame(code=31,type=1, name='h3233!!s')
#dbxUpsert(conn, table, records, where_cols=c("code"))

#break;
#拼数据
dirName <- 'rv_results';
files <- list.files(paste(dirName,"/",sep=""))


for(in_file in files){

  filename  = as.character(in_file);
  filePath  = paste(dirName,"/",filename,sep="")
  if(file.exists(filePath)){
    lists <- read.csv(filePath,header=T)
    cat("path = ",filePath,'\n')
    list_len = length(lists$Open)
    cat("list_len = ",list_len)
    #ctime_str = format(Sys.time(), "%Y-%m-%d %H:%M:%S");
    for(index in 1:list_len)
    {
      cat("index = ",index,'\n')
    
      #第index行数据
      item  = lists[index,]
      code  = paste(substring(filename,3,8),substring(filename,1,2),sep='.')
      colnames(item) <- c("Date", "Open","High","Low","Close","Volume","Overnight",'RV','RRV')
      #item$Date2 <-as.POSIXct(item$Date)
      #找到它的ID
      assetId = findIdForCodeFromDatas(list_assets,code)
      
      unique_field_str<-paste(item$Date,'_',assetId,sep="")
      record <- data.frame(date=item$Date,asset_id=assetId,rv=item$RV,rrv=item$RRV,unique_field=unique_field_str)
      #print(record)
      updateOrInsert(conn,table_volatility,record,c('unique_field'))
    }
  }
}
dbDisconnect(conn)


OK.打完收工。