无法将数据从数据库导出到 csv 文件

Posted

技术标签:

【中文标题】无法将数据从数据库导出到 csv 文件【英文标题】:Can't export data from a database to a csv file 【发布时间】: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\",尝试在您当前用户的目录下创建文件。 【参考方案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 所需的任何自定义格式。

【讨论】:

以上是关于无法将数据从数据库导出到 csv 文件的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI - 将核心数据导出到 CSV 文件 - 无法遍历实体

将特定查询数据从 netezza 数据库导出到 CSV 文件

如何将数据从Python导出到.csv文件?

如何将数据从 Oracle 数据库导出到 csv 文件?

尝试将数据从我的 firebase 数据导出到 csv 文件给出未定义

如何将表数据从 PostgreSQL (pgAdmin) 导出到 CSV 文件?