您的位置:首页 > 数据库 > MySQL

如何从Mysqll读取数据写入csv文件

2012-11-03 10:25 561 查看
因为有题目说的需求,所以自己写了一个小程序尝试了一下,成功了。但对大数据处理的效果应该不会很好吧,还需要改进。

1.这是自己建的一个测试数据库。





2.这是转换的程序。

import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

public class DataIntoCSV{
public static void main(String[] args){
int index;
ArrayList dataList=null;
String CSVFileName="ratingdata.csv";
BufferedWriter bufferedWriter=null;
try{
dataList=new ArrayList();
Class.forName("com.mysql.jdbc.Driver");

java.sql.Connection connect=DriverManager.getConnection("jdbc:mysql://localhost:3306/recomdatabase","root","123456");

Statement stmt=connect.createStatement();
ResultSet rs=stmt.executeQuery("select * from preferences");
while(rs.next()){
//System.out.println("  "+rs.getString("userID"));
//  System.out.println("  "+rs.getString("movieID")+"   ");
// System.out.print("  "+rs.getString("preference"));
dataList.add(rs.getString("userID"));
dataList.add(rs.getString("movieID"));
dataList.add(rs.getString("preference"));
}

try{
bufferedWriter=new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("D://dataset//"+CSVFileName),"SHIFT_JIS"));

for(index=0;index<dataList.size();index++){
if(index%3!=2)
{  bufferedWriter.write(new String ((dataList.get(index)+",").getBytes("SHIFT_JIS")));}
else{
bufferedWriter.write(new String((dataList.get(index)+"\r\n").getBytes("SHIFT_JIS")));
}

}

bufferedWriter.flush();
bufferedWriter.close();
}catch(FileNotFoundException e){
e.printStackTrace();
}
// for(int n =0;n<dataList.size();n++){
//   System.out.println(dataList.get(n));
// }
}catch(Exception e){
e.printStackTrace();
}
}
}

3.这是生成的文件结果。





希望有改进的好的方法,大家给我留言,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MYSQL CSV 文件