日期:2014-05-18  浏览次数:20625 次

老板在催,急啊!大家帮忙看看吧,要不我就要失业了。
哪位仁兄有关于java访问数据库后   将数据库内容转成csv格式的源码,帮帮我吧,我们家孩子刚满月,我不能失业啊,我们能让孩子吃不上奶粉呀。苍天啊,保佑那些跟我贴帮我的人吧,谢谢了。

------解决方案--------------------
你能取出数据应该不难吧,CSV只是一种文件格式而以呀,也就是个文本文件,好象是用TAB分隔了。
------解决方案--------------------
什么数据库啊!这也不说清楚,
------解决方案--------------------
#将一个123M的csv文件((805 vars, 118519 obs))用R分析,如果直接全部读入,则没有足够的内存(我电脑512M内存)。单是这些数据变成R格式的数据其大小就约360M。现在只能read in piece。用database来处理。

rm(list=ls())
f <-file( "D:\wvsevs_sb_v4.csv ", "r ")#134M
i <- 0
done <- FALSE
library(RSQLite)
con <-dbConnect( "SQLite ", "c:\sqlite\database.db3 ")
tim1 <-Sys.time()

while(!done){
i <-i+1
tt <-readLines(f,2500)
if (length(tt) <2500) done <- TRUE
tt <-textConnection(tt)#readLines和textConnection的结合时候是很关键的。
if (i==1) {
#assign(paste( "tt ",i,sep= ". "),read.table(tt,head=T,sep= ", ",quote= " "));
assign( "dat ",read.table(tt,head=T,sep= ", ",quote= " "));
nam <-names(dat);
nam <-gsub( "^X. ", " ",nam);
nam <-tolower(gsub( ".$ ", " ",nam))#处理变量名字
names(dat) <-nam
}
else assign( "dat ",read.table(tt,head=F,sep= ", ",quote= " "))
close(tt)
ifelse(dbExistsTable(con, "wvs "),dbWriteTable(con, "wvs ",dat,append=T), dbWriteTable(con, "wvs ",dat) )
}
close(f)

#用paste函数动态变化参数取值
#for (i in range)
#assign(paste( "x ",i,sep= ". "),read.table(tt,head=T,sep= ", ",quote= " "));
#dbWriteTable(con, "newtable ",eval(as.name(paste( "x ", "1 ",sep= ". "))),over=T) # 这里用了as.name,用parse也可以的。
tim2 <-Sys.time()
rm(dat)
closeAllConnections()
tim2-tim1

#这个约12万行,807列的数据读书转换的时间一共是10分钟。觉得还可以。
#我的电脑是1.7G,512内存。
#接下来就可以通过RSQLite这个程序包来读入需要的数据,然后进行分析。

#get data and analysis
#1,dbConnect - dbSendQuery - fetch(dbGetQuery=dbSendQuery + fetch)
#2,dbConnect - dbReadTable #速度慢
##dbWriteTable函数会吧NA变成\N,因此会造成数字变字符的情况。这时候需要用as.numeric转换为数字或者select的时候用where var!= '\N ' 来选择。注意:这里是\N而不是\NA,where表达式中的单引号。
con <-dbConnect( "SQLite ", "c:\sqlite\database.db3 ")#建立连接(connection )
sq <-dbSendQuery(con, "select s006 from wvs ") #查询 ,注意变量名之间需要逗号
summary(dat <-fetch(sq,n=-1)) #提取,得到的是数据框
summary(dbGetQuery(con, "select s006 from wvs where s006= '\N ' ")[,1])


不知道能不能帮到你,我正患肺炎,我们都会好的
------解决方案--------------------
这个楼层很压抑啊
------解决方案--------------------
不会 帮忙顶
------解决方案--------------------
...csv不是逗号分割文件么,纯文本文件操作啊~没什么难度吧~还是我理解错了?
以前写过给你翻腾翻腾
------解决方案--------------------
我也只能帮忙顶了,我不知道什么是csv格式,我想如果了解这个格式应该就不是难事了吧,或者楼主去网上搜搜csv呢?呵呵,我不懂就不多说了


------解决方案--------------------
恭喜~~`解決了~~`
------解决方案--------------------
不知道,没法帮你.还是祝你好运吧!
------解决方案--------------------