当前位置: 首页 > 知识库问答 >
问题:

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

阎星华
2023-03-14

哪种方法是以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

共有1个答案

年凯康
2023-03-14

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.html以及participan您的bean。

 类似资料:
  • 问题内容: 有没有一种简单的方法可以从Linux命令行运行MySQL查询并以CSV格式输出结果? 这是我现在正在做的事情: 当有很多列需​​要用引号引起来时,或者结果中有引号需要转义时,它将变得混乱。 问题答案: 从http://www.tech-recipes.com/rx/1475/save-mysql-query-results-into-a-text-or- csv-file/ 使用此命令

  • 问题内容: 在我的Java项目中,我有很多JasperReports报告,其中包含复杂的SQL查询,其中包含很多参数。这些报告用于生成pdf文档,其中包含查询返回的数据,并以各种方式进行了分组和格式化。 现在,我还需要直接导出查询结果(例如ResultSet或Map或csv文件或类似文件)。是否可以要求JasperReports仅执行查询并返回结果,而不渲染pdf页面? (注意:这与为报表呈现选择

  • 问题内容: 我的要求是存储查询的整个结果 到Excel文件。 问题答案: 实现此目的的典型方法是导出为CSV,然后将CSV加载到Excel。 您可以使用任何MySQL命令行工具通过在语句中包含以下子句来执行此操作: 有关详细选项,请参见此链接。 另外,您可以使用mysqldump,使用– tab选项将转储存储为单独的值格式,请参见此链接。

  • 问题内容: 我正在处理ETL,并且在SSIS包中的SQL任务中具有以下sql代码。这就是我编码的方式。我正在从表中选择数据,并将该查询的结果作为文件。我希望此附件以CSV格式发送。我该怎么做? 任何帮助将不胜感激。提前致谢。 问题答案: 添加应该可以解决问题。 添加可能会稍微清除结果。所有的论点都可以在这里找到

  • 这可以在单个sql查询中完成吗?或者我必须在循环中对每个房间进行查询吗?还是在一次查询中转储整个数据集,然后在pyhton中处理它更有效率?这是一个很小的数据集,但我有兴趣知道哪一个是最有效的方法。 先谢谢你,马丁 下面是我的表结构: