postgresql - 如何从查询中导出 DBUnit 结果集

标签 postgresql unit-testing dbunit

有人在这里问过类似的问题:1

此代码有效:

    IDatabaseConnection connection = getConnection();
    ITableFilter filter = new DatabaseSequenceFilter(connection);
    IDataSet dataset    = new FilteredDataSet(filter, connection.createDataSet());
    FlatXmlDataSet.write(dataset, new FileOutputStream(file));

它将整个数据库转储到一个 XML 平面文件中。好的。我们知道我的用户名/密码/驱动程序名/连接字符串等都很好。 现在我该如何修改它以便我可以提供 SQL 选择语句并导出单个查询的结果?

我做了一些谷歌搜索并找到了这段代码:

    System.out.println("begin partial");
    IDatabaseConnection connection = getConnection();

    QueryDataSet partialDataSet = new QueryDataSet(connection);
    partialDataSet.addTable("gov", "SELECT * FROM GOV_UNIT");
    partialDataSet.addTable("gov_unit");

    FlatXmlDataSet.write(partialDataSet, new FileOutputStream("partial-dataset.xml"));
    System.out.println("end   partial");

这并没有像我希望的那样创建文件“partial-dataset.xml”。它只打印“开始部分”和“结束部分”。

有人可以帮助我使这段代码工作吗?我究竟做错了什么?当然,当它开始工作时,我会将简单查询替换为适用于我的 postgresql 数据库的递归连接。

谢谢 齐格飞

最佳答案

您的代码没问题。此行 FlatXmlDataSet.write(partialDataSet, new FileOutputStream("partial-dataset.xml")); 不创建 XML 文件,您必须在之前手动创建它。这就是您所需要的。

关于postgresql - 如何从查询中导出 DBUnit 结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31713068/

相关文章:

c# - 在同一个类中模拟一个方法

unit-testing - 使用 CDI Unit 和 EasyMock 进行单元测试

hibernate - 如何使用 Postgres 和 Tomcat7 JDBC 池配置 PreparedStatement 缓存?

database - jsonb_set 在过程中传递变量值而不是静态

java - Spring 和 PostgreSQL 之间的错误编码

Java获取调用main创建的线程

java - DBUnit:具有 MySQL YEAR 类型列的数据集

java - 哪些工具可用于将测试数据填充到 mongodb

junit - 在表上打开 IDENTITY_INSERT 以使用 DB 单元加载它

c++ - 选择 PostgreSQL 的列数