此JAVA代码不生成CSV文件

时间:2018-02-10 22:12:22

标签: java mysql csv netbeans export-to-csv

我有这个java代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;

public class Propietaria {
 public static void main(String[] args) {
   DBase db = new DBase();
   Connection conn = db.connect("jdbc:mysql://localhost:3306/propietaria","root","");

   if (args.length != 1) {
     System.out.println("Usage: java automateExport [outputfile path] ");
     return;
   }
   db.exportData(conn,args[0]);
 }

}

class DBase {
 public DBase() {
 }

 public Connection connect(String db_connect_str,
 String db_userid, String db_password) {
   Connection conn;
   String filename;
   filename = "payroll.csv";
   try {
     Class.forName("com.mysql.jdbc.Driver").newInstance();
     conn = DriverManager.getConnection(db_connect_str, db_userid, db_password);

   } catch(Exception e) {
     e.printStackTrace();
     conn = null;
   }
   return conn;
 }

 public void exportData(Connection conn,String filename) {
   Statement stmt;
   String query;
   try {
     stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
        ResultSet.CONCUR_UPDATABLE);

     //For comma separated file
    query = "SELECT id, numero_cuenta, nombre_empleado, sueldo, horas_trabajadas, horas_vacaciones, sueldo" +
     "INTO OUTFILE 'probando/payroll.csv'" +
     "FIELDS TERMINATED BY ',' " +
     "FROM nomina";
    stmt.executeQuery(query);

   } catch(Exception e) {
     e.printStackTrace();
     stmt = null;
   }
 }
};

我正在尝试生成来自位于nomina数据库的propietaria表的数据CSV。

当我执行查询(MySQL)时,这会创建我的文件,但这只是在SQLyog中。当我运行此代码时,控制台向我发送消息“用法:java automateExport [outputfile path]”

这是nomina表的结构:

 id  numero_cuenta  nombre_empleado  horas_trabajadas  horas_vacaciones  sueldo  
------  -------------  ---------------  ----------------  ----------------  --------
  1001      712332889  Tony Smith                     50                 5  40.00   
  1002      785445566  David Jones                    40                 0  10.00   
  1003      454544545  Denise Smith                   35                 3  20.00   
  1008      445565545  Sebastien Motte                50                 5  0.00    
  1011      122154555  Isabelle Scemla                40                 0  40.00   
  1012      154668544  David Bristol                  40                 5  40.00   
  1025      225468255  Anne Weiler                    36                 0  20.00   
  1032      336566585  Luka Abrus                     40                 5  0.00    
  1049      525556556  David Ludwig                   40                 1  0.00    
  1050      525556557  Tony Smith                     50                 5  40.00   
  1051      525556558  David Jones                    40                 0  10.00   
  1052      525556559  Denise Smith                   35                 3  20.00 

有更多记录,但是要向您展示一个例子。

编辑:我忘了说当我在SQLyog中运行查询时,这会创建CSV文件:xamp> mysql> data> probando(我创建的文件夹)> payroll.csv

也许Java会在其他地方创建这个文件?

0 个答案:

没有答案