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

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

如何从Mysqll读取数据写入csv文件_第1张图片 

2.这是转换的程序。

 

   
   
   
   
  1. import java.io.BufferedWriter;  
  2. import java.io.FileNotFoundException;  
  3. import java.io.FileOutputStream;  
  4. import java.io.OutputStreamWriter;  
  5. import java.sql.DriverManager;  
  6. import java.sql.ResultSet;  
  7. import java.sql.Statement;  
  8. import java.util.ArrayList;  
  9.  
  10.  
  11. public class DataIntoCSV{  
  12.     public static void main(String[] args){  
  13.         int index;  
  14.         ArrayList dataList=null;  
  15.         String CSVFileName="ratingdata.csv";  
  16.         BufferedWriter bufferedWriter=null;  
  17.         try{  
  18.             dataList=new ArrayList();  
  19.             Class.forName("com.mysql.jdbc.Driver");  
  20.             
  21.             java.sql.Connection connect=DriverManager.getConnection("jdbc:mysql://localhost:3306/recomdatabase","root","123456");  
  22.             
  23.               Statement stmt=connect.createStatement();  
  24.                ResultSet rs=stmt.executeQuery("select * from preferences");  
  25.                while(rs.next()){  
  26.                 //System.out.println("  "+rs.getString("userID"));  
  27.                  //  System.out.println("  "+rs.getString("movieID")+"   ");  
  28.                   // System.out.print("  "+rs.getString("preference"));  
  29.                    dataList.add(rs.getString("userID"));  
  30.                    dataList.add(rs.getString("movieID"));  
  31.                    dataList.add(rs.getString("preference"));  
  32.                }  
  33.                  
  34.                try{  
  35.                    bufferedWriter=new BufferedWriter(new OutputStreamWriter(  
  36.                            new FileOutputStream("D://dataset//"+CSVFileName),"SHIFT_JIS"));  
  37.                      
  38.                    for(index=0;index<dataList.size();index++){  
  39.                       if(index%3!=2)  
  40.                       {  bufferedWriter.write(new String ((dataList.get(index)+",").getBytes("SHIFT_JIS")));}  
  41.                       else{   
  42.                           bufferedWriter.write(new String((dataList.get(index)+"\r\n").getBytes("SHIFT_JIS")));  
  43.                           }  
  44.                  
  45.                    }  
  46.                     
  47.                    bufferedWriter.flush();  
  48.                    bufferedWriter.close();  
  49.                }catch(FileNotFoundException e){  
  50.                    e.printStackTrace();  
  51.                }  
  52.               // for(int n =0;n<dataList.size();n++){  
  53.                 //   System.out.println(dataList.get(n));  
  54.               // }  
  55.          }catch(Exception e){  
  56.              e.printStackTrace();  
  57.          }  
  58.         }  
  59. }  

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

 

如何从Mysqll读取数据写入csv文件_第2张图片 

希望有改进的好的方法,大家给我留言,谢谢!