【问题标题】:Can't export data from a database to a csv file无法将数据从数据库导出到 csv 文件
【发布时间】:2019-05-15 06:56:20
【问题描述】:

我正在尝试从云上的数据库中收集数据并将每个属性和元组导出到 csv 文件中。

static final String JBDC_DRIVER="com.mysql.jbdc.Driver";

public static void main(String[]args){
    String filename = "c:/users/myjbdcfile.csv";

    try{
        FileWriter fw = new FileWriter(filename);
        Connection conn = (Connection) DriverManager.getConnection(DB_URL,user,pass);
        String query  = "select * from allSavedSongs";
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery(query);
        while(rs.next())
        {
            fw.append(rs.getString(1));
            fw.append(',');
            fw.append(rs.getString(2));
            fw.append(',');
            fw.append(rs.getString(3));
            fw.append(',');

        }
        fw.flush();
        fw.close();
        conn.close();
    } catch (Exception e) {
        e.printStackTrace();
    }

}

我收到错误 java.io.FileNotFoundException: c:\users\myjbdcfile.csv (Access is denied) 我也尝试过 String filename = "c:\users\myjdbcfile. csv";

【问题讨论】:

  • 在云中你可能会得到一个 unix vm,你将如何获得 C:/ drive 那里?
  • @Sambit 我正在尝试将其从谷歌云中取出并将数据提取到我硬盘上的 csv 文件中
  • 您是否以"c:/users/" 的访问权限运行此代码?您是否尝试过使用String filename = "c:\\users\\myjdbcfile.csv"
  • 如何让它以特权访问。你我试过@deHaar
  • 可能,您当前的Windows用户无法访问"c:\users\",而是访问"c:\users\YOUR_CURRENT_USERNAME\",尝试在您当前用户的目录下创建文件。

标签: java mysql


【解决方案1】:

通常C:/Users不会有写权限,除非你修改权限。 我不希望修改权限并使用不同的驱动器或文件夹。

       String filename = "D:/users/myjbdcfile.csv";
        File dbFile = new File(filename);
        dbFile.getParentFile().mkdirs();
        dbFile.createNewFile();
        FileWriter fw = new FileWriter(dbFile);

此外,您正在将每条记录的数据写入文件,这会影响性能。 使用 StringBuilder 和 List 并围绕它构建逻辑。

【讨论】:

    【解决方案2】:

    您是否考虑过完全不编写 java 代码的方法?使用 IntelliJ IDEA Ultimate,您可以简单地将 export sql results 转换为 file

    CSV 或creating a custom extractor script 所需的任何自定义格式。

    【讨论】:

      猜你喜欢
      • 2014-11-05
      • 2012-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-10
      • 2013-06-17
      • 1970-01-01
      相关资源
      最近更新 更多