我正在尝试从云上的数据库中收集数据,并将每个属性和元组导出到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”;
答案 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:
CSV或creating a custom extractor script所需的任何自定义格式。