Java opencsv创建空csv
我需要将任何数据库的结果集转换为csv,而不仅仅是postgres 当我使用opencsv时,正在创建空的csv文件 以下是servlet中doGet方法的代码:Java opencsv创建空csv,java,csv,opencsv,Java,Csv,Opencsv,我需要将任何数据库的结果集转换为csv,而不仅仅是postgres 当我使用opencsv时,正在创建空的csv文件 以下是servlet中doGet方法的代码: final String JDBC_DRIVER = "org.postgresql.Driver"; final String DB_URL = "jdbc:postgresql://localhost:5432/postgres"; // Database credentials final S
final String JDBC_DRIVER = "org.postgresql.Driver";
final String DB_URL = "jdbc:postgresql://localhost:5432/postgres";
// Database credentials
final String USER = "postgres";
final String PASS = "12345";
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Database Result";
String docType =
"<!doctype html public \"-//w3c//dtd html 4.0 " +
"transitional//en\">\n";
out.println(docType +
"<html>\n" +
"<head><title>" + title + "</title></head>\n" +
"<body bgcolor=\"#f0f0f0\">\n" +
"<h1 align=\"center\">" + title + "</h1>\n");
PreparedStatement ps = null;
Connection conn = null;
try {
// Register JDBC driver
Class.forName("org.postgresql.Driver");
// Open a connection
conn = DriverManager.getConnection(DB_URL, USER, PASS);
// Execute SQL query
//stmt = conn.createStatement();
String sql = "SELECT * FROM users";
ps = conn.prepareStatement(sql,
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = ps.executeQuery();
/*if(rs.next()){
System.out.println("Name = "+rs.getString("first_name"));
}*/ //prints name so rs is not empty
//rs.first();
CSVWriter writer = new CSVWriter(new FileWriter("Test.csv"));
//even tried with seperator '\t' or ','
writer.writeAll(rs, true);
writer.close();
out.println("</body></html>");
// Clean-up environment
rs.close();
ps.close();
conn.close();
} catch (SQLException se) {
//Handle errors for JDBC
se.printStackTrace();
} catch (Exception e) {
//Handle errors for Class.forName
e.printStackTrace();
} finally {
//finally block used to close resources
try {
if (ps != null)
ps.close();
} catch (SQLException se2) {
}// nothing we can do
try {
if (conn != null)
conn.close();
} catch (SQLException se) {
se.printStackTrace();
}//end finally try
} //end try
不确定是什么错误。尝试了不同的方式,但csv始终为空
甚至尝试过writer.flush、rs.beforeFirst、rs.first都不起作用。您的问题是在html中看不到数据-如果是这种情况,那么不在CSVWriter中创建新的FileWriter,只需传入您的输出变量即可 还是您检查了Test.csv和文件,但什么都没有?如果是,则首先检查结果集中是否存在实际数据,方法是在executeQuery之后添加以下内容:
rs.last();
long numberOfRecords = rs.getRow();
rs.beforeFirst();
System.out.println("Number of Users in table is: " + numberOfRecords);