结果集为CSV?

时间:2015-06-22 19:08:46

标签: java

我正在使用opencsv库将oracle数据转储到csv文件中。

我正在使用以下代码:

    private void generateCSVFile() {

    try {
        Class.forName("oracle.jdbc.driver.OracleDriver");
        String url = "jdbc:oracle:thin:@localhost:1521:XE";
        Connection con = DriverManager.getConnection(url, "system", "admin");
        PreparedStatement ps = con.prepareStatement("select * from T_USER_DETAILS",ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE,ResultSet.HOLD_CURSORS_OVER_COMMIT);
        ResultSet rs = ps.executeQuery();
        if(rs.next()){
            System.out.println("Name = "+rs.getString(2));
        }

        rs.beforeFirst();
        CSVWriter writer = new CSVWriter(new FileWriter("Test.csv"),'\t');

        writer.writeAll(rs, true);
        JOptionPane.showMessageDialog(null, "CSV Created!","Success!",JOptionPane.INFORMATION_MESSAGE);

    } catch (Exception ex) {
        Logger.getLogger(BackupDB.class.getName()).log(Level.SEVERE, null, ex);
    }

}

但是,当我执行此代码时。已创建csv文件,但该文件中没有内容。 (注意结果集在控制台中打印2列值。)

先谢谢。

1 个答案:

答案 0 :(得分:3)

你可以尝试一些事情:

  1. 将writer.close()放在try块的末尾。
  2. 确保结果集不为空
  3. 如果仍然没有注释sytem.out.println部分以及rs.beforeFirst()部分并重试
  4. 如果前3个步骤仍然失败,这是您要做的最后一件事。你可以在构造函数中用List<String[]test>替换结果集来试一试。如果它的工作意味着你的结果集有问题。