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

时间:2019-05-15 06:56:20

标签: java mysql

我正在尝试从云上的数据库中收集数据,并将每个属性和元组导出到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(访问被拒绝)我也尝试执行String filename =“ c:\ users \ myjdbcfile。 csv”;

2 个答案:

答案 0 :(得分:0)

通常,C:/用户将没有写权限,除非您修改权限。 我不希望修改权限并使用其他驱动器或文件夹。

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

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

答案 1 :(得分:0)

您是否考虑了完全不编写Java代码的方法?使用IntelliJ IDEA Ultimate,您可以简单地将export sql results变成file

enter image description here

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