将数据库查询导出为CSV文件,PostgreSQL& Java的

时间:2014-02-10 16:19:00

标签: java mysql sql postgresql csv

正如标题所述,我正在将一个java查询从本地数据库导出到CSV文件中,所有必需的信息都打印出来,但我的列标题打印在A列(第1-8行)而不是列(AH)。简而言之,我在第1列中打印1-8页,然后按正确的顺序排列数千行数据。对java很新,对不起,如果我很傻!

        PrintWriter out = new PrintWriter(new BufferedWriter(
                new FileWriter("TestingRawData.csv")));

        ResultSetMetaData rsmd = result.getMetaData();
        int columnCount = rsmd.getColumnCount();

        for (int i = 1; i < columnCount + 1; i++) {
            String name = rsmd.getColumnName(i);
            out.println(name);
            // print the name
        }

        while (result.next()) {
            out.println(String.format("%s,%s,%s,%s,%s,%s,%s,%s",
                    result.getString(1), result.getString(2),
                    result.getString(3), result.getString(4),
                    result.getString(5), result.getString(6),
                    result.getString(7), result.getString(8)));

        }

1 个答案:

答案 0 :(得分:0)

除了这应该使用诸如OpenCSV之类的CSV库完成之外, println输出换行符。请改用print

for (int i = 1; i < columnCount + 1; i++) {
    String name = rsmd.getColumnName(i);
    out.print(name);
    if (i != columnCount + 1) {
      out.print(",");
    }
}
相关问题