【问题标题】:How to extract a subset of a database into a dbunit file using a sql query?如何使用 sql 查询将数据库的子集提取到 dbunit 文件中?
【发布时间】:2013-01-10 11:20:42
【问题描述】:

为什么?

我有一个很大的 Oracle 表。我想测试一些 DAO 方法。为此,我使用 dbunit。

问题

我想使用 sql 查询将现有数据库的子集提取为 dbunit 平面 xml 文件。查询示例:

Select 
      t1.field1 as field1, t1.field2 as field2, t2.field3 as field3
From 
       table1 t1
       Join table2 t2 on t1.fieldX=t2.fieldX
Where 
       t1.field6='value' and t2.field8='value2'

在这种情况下,它将提取 table1 和 table2 的所有记录,这些记录是查询的结果,然后它还会提取这些记录的所有依赖关系。

我尝试过的

  1. 狱卒

我已经测试了 Jailer,这是一个很好的工具。问题是我只能对一个表进行查询并提取它以保持关系。我的 sql 查询有几个 join 和 where 条件无法使用此软件解决。

  1. DBUnit 生成

我也尝试直接使用 DBUnit 来生成数据集,但它需要做很多工作,因为我们不能直接从 sql 查询生成子集,只能通过在每个表上指定一系列小查询来生成。 我有很多连接和条件,所以这不是一个可接受的解决方案。

问题

如何使用 sql 查询 作为导出的基础来生成数据库的子集(并将其导出到 dbunit 平面 xml 文件中)?

【问题讨论】:

  • 您想要整个数据库的子集、单个表还是 SELECT 语句的结果?因为您混合了这些术语,所以我有点困惑 - 也是因为“几个连接和条件”注释表明您要导出 SELECT 语句的结果而不是“数据库”或一张桌子。
  • 我已经编辑了我的帖子以反映这一点。我的查询是一个选择。

标签: sql oracle unit-testing dbunit


【解决方案1】:

我认为您想要的可能超出了 DBUnit 的范围。

我认为最好的方法是设置一系列视图来处理连接并从中提取数据。获得意见后,您可以使用 SQL 查询pull the data out

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多