繁体   English   中英

JPA:将查询结果导出为CSV格式

[英]JPA: export query result to CSV format

哪种是以CSV格式导出JPA查询结果的最佳方法? 我试过opencsv,但它想要一个java.sql.ResultSet对象,我不明白如何创建它。 我尝试了以下代码

public ResultSet getAllUsersMap() {
    String query = "SELECT p from Participant p ORDER BY p.lastName";
    ResultSet rs = (ResultSet) em.createQuery(query).getResultList();
    return rs;
}

但我收到异常java.lang.ClassCastException:java.util.Vector无法强制转换为java.sql.ResultSet

JPA是ORM框架规范。 它与创建CSV文件没有直接关系。 该错误只是说您正在将方法getResultList()的返回值强制转换为错误的类型。

使用opencsv,这样的东西应该工作:

String query = "SELECT p from Participant p ORDER BY p.lastName";
List resultList = em.createQuery(query).getResultList();

BufferedWriter out = new BufferedWriter(new FileWriter("result.csv"));
CSVWriter writer = new CSVWriter(out);
for (Object item : resultList) {
    String line = formatParticipantToLine(item) // method to format properties of Participant with comma's
    writer.writeNext(item);
}
writer.close();

更新:你也可以使用http://opencsv.sourceforge.net/apidocs/au/com/bytecode/opencsv/bean/BeanToCsv.htmlParticipant你的bean当然。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM