2010-07-02 42 views
1

我需要使用数据库从数据库下载csv文件。如何使用java从数据库下载数据为csv?

我有jdbc连接并执行查询,从数据库中获取数据。这些值使用java类下载为csv格式。

Java class: 
String filename="Cases.csv"; 
//here database connection. 


ResultSet rst= stmt.executeQuery(qry); 
    System.out.println("1"+rst); 
    if(rst.next()) 
    { 

    Content=rst.getString("USER_details"); 

    } 
    //ServletOutputStream out = null; 
    //out.println(Content); 
    System.out.println("1"+Content); 
    byte requestBytes[] = Content.getBytes(); 
    ByteArrayInputStream bis = new ByteArrayInputStream(requestBytes); 
    response.reset(); 
    response.setContentType("application/text"); 
    response.setHeader("Content-disposition","attachment; filename=" +filename); 
    byte[] buf = new byte[1024]; 
    int len; 
    while ((len = bis.read(buf)) > 0){ 
    response.getOutputStream().write(buf, 0, len); 
    } 
    bis.close(); 
    response.getOutputStream().flush(); 
    } 
    catch(Exception e){ 
    e.printStackTrace(); 
    } 

如何从数据库获取所有值为csv格式?

+0

我总是会做一段时间(rst.next()),而不是如果(rst.next())的情况下,你在未来返回多行的。也把你的密切的声明放在一个finally块中。 – 2010-07-02 17:56:33

+0

我想获得多个行和coloumn。如何修改代码? – Nancy 2010-07-02 18:08:16

回答

3

OpenCSV支持导出一个ResultSet到CSV:

CSVWriter writer = ...; 
ResultSet rs = ...; 
writer.writeAll(rs, true); 
相关问题