如何使用jdbc代码和文件编写器将Mysql中的数据写入文件?

时间:2014-07-21 19:54:32

标签: jdbc

String selectTableSQL = "select JobID, MetadataJson from raasjobs join metadata using (JobID) where JobCreatedDate > '2014-07-01';";
    File file = new File("/users/t_shetd/file.txt");
    try {
        dbConnection = getDBConnection();
        statement = dbConnection.createStatement();

        System.out.println(selectTableSQL);

        // execute select SQL stetement
        ResultSet rs = statement.executeQuery(selectTableSQL);
        if (!file.exists()) {
            file.createNewFile();
        }

        FileWriter fw = new FileWriter(file.getAbsoluteFile());
        BufferedWriter bw = new BufferedWriter(fw);
        while (rs.next()) {

        String JobID = rs.getString("JobID");
        String Metadata = rs.getString("MetadataJson");
        bw.write(selectTableSQL);
        bw.close();
        System.out.println("Done");

//现在我只完成输出

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,那么

while (rs.next()) {
  String JobID = rs.getString("JobID");
  String Metadata = rs.getString("MetadataJson");
  bw.write(selectTableSQL);
  bw.close();
  System.out.println("Done");
}

应该是(遵循Java大写约定),

while (rs.next()) {
  String jobId = rs.getString("JobID");
  String metaData = rs.getString("MetadataJson");
  bw.write(String.format("Job ID: %s, MetaData: %s", jobId, metaData));
}
bw.close(); // <-- finish writing first!
System.out.println("Done");

在您的版本中,在从ResultSet打印第一行后关闭输出。之后,没有其他内容会写(因为文件已关闭)。