public static void extractTables(String targetDirectory,String[] tableNames)
throws Exception {
IDatabaseConnection connection =new DatabaseConnection( dc.getConnection(), "DB_NAME");
connection.getConfig().setProperty(DatabaseConfig.PROPERTY_METADATA_HANDLER,new MySqlMetadataHandler());
for (int i = 0; i < tableNames.length; i++) {
String tableName = tableNames[i];
IDataSet partialDataSet = connection.createDataSet
(new String[] { tableName });
FlatXmlDataSet.write
(partialDataSet, new FileOutputStream
(targetDirectory + "/" + tableName + ".xml"));
}
}
现象:
运行会出现"No columns found"的错误。DB_NAME为库的名称,一开始认为就是schema.
原因:
调试后发现,ResultSet resultSet = databaseMetaData.getColumns(
null, schemaName, tableName, "%"); 中,schemaName的值无关痛痒,返回的schema字段为null,在org.dbunit.database.DefaultMetadataHandler#matches中做判断时,由于schema不一致,导致返回col为空
解决办法:
将"DB_NAME"改为null即可
分享到:
相关推荐
这些示例可能包括如何配置DBUnit,定义数据格式,以及如何在测试前后触发数据操作的代码片段。通过阅读和理解这些代码,开发者可以更好地掌握DBUnit的实际应用。 总的来说,DBUnit是数据库测试领域的一个强大工具,...
在提供的文件列表中,我们可以看到 student_mysql.sql(可能是 SQL 导出的数据库备份),以及几种不同类型的 XML 文件(student_nonflat.xml、student_exp.xml、student_flat.xml、student_pre.xml),这些都是 ...
在进行数据库驱动的应用程序开发时,DBUnit 可以帮助开发者在每次测试之前清空并填充数据,然后在测试后检查数据是否符合预期,从而实现可靠的自动化测试。 标题“dbunit测试demo”表明这是一个关于如何使用 DBUnit...
在软件开发中,测试是保证代码质量和功能正确性的重要环节,而 DBUNIT 尤其适用于对数据库操作进行测试,特别是在进行批量数据处理时。 批量对比测试在数据库测试中扮演着关键角色,因为往往需要确保大量的数据导入...
3. **数据集**:在DBUnit中,数据以数据集的形式存在,可以是XML文件或CSV文件。数据集定义了测试用例的数据输入和期望的输出结果。 4. **连接数据库**:DBUnit 可以与各种关系型数据库(如MySQL、Oracle、SQL ...
在使用 DBUnit 进行测试时,首先需要引入 dbunit-2.4.7.jar 和其他必要的依赖库,如 JDBC 驱动。接下来,创建一个 `IDatabaseConnection` 实例,该实例代表与数据库的连接。然后,可以使用 `DatabaseConfig` 来配置 ...
1. **数据导入/导出**:DBUnit可以将数据从数据库导出到XML或CSV文件,也可以将这些文件中的数据导入到数据库,这在数据迁移或备份时非常有用。 2. **数据比较**:DBUnit提供了断言机制,可以比较数据库的实际状态...
在版本 2.4.9 中,DBUnit 提供了一系列的功能,帮助开发者在进行单元测试时能够管理和操作数据库的数据状态。 DBUnit 的核心功能包括: 1. 数据初始化:在测试前,DBUnit 可以导入 CSV、XML 或 Excel 文件中的数据...
Dbunit 是一个强大的Java库,专门用于数据库的测试和数据管理。它被广泛应用于软件开发过程中,特别是对于那些依赖于数据库的应用程序,因为Dbunit能够帮助开发者有效地管理和控制数据库的状态,确保测试的一致性...
2. **数据清理**:测试前,DbUnit 可以清空指定的表,确保每次测试都在一个干净的环境中开始。 3. **数据填充**:使用 `Dataset` 对象,DbUnit 可以将预定义的数据填充到数据库中,以模拟各种场景。 4. **断言比较...
在进行单元测试时,DBUnit 允许我们将数据库的状态定义为“预期状态”(通常在测试开始前)和“目标状态”(期望在测试后达到的状态)。这使得我们可以验证数据库操作是否按预期工作,确保代码对数据库的修改是正确...
2. 模式(Schema):DBUnit 允许你在数据集之前指定数据库模式,这有助于处理不同数据库之间的差异,比如列的顺序、类型等。 3. 操作(Operation):操作是指对数据库执行的具体动作,如 `INSERT`、`UPDATE`、`...
在Java应用程序的测试过程中,确保数据库状态的一致性是非常重要的,DBUnit 提供了这样的功能,它允许开发者导入和导出数据库数据,以进行精确的测试。 在使用 DBUnit 时,有几个必需的 Jar 包是必不可少的,这些 ...
3. **类型不匹配**: 如果遇到类型映射问题,可能需要自定义 `ColumnConfig` 并在数据集中指定。 通过深入理解和熟练使用 DBUnit,你可以更高效地管理测试数据,确保数据库相关的测试更加稳定和可靠。结合 JUnit 或...
在IT行业中,数据库管理和数据导入导出是至关重要的任务,特别是在使用DBUnit这样的工具时。DBUnit是一款用于数据库测试的Java库,它允许开发者在测试前后对比数据库状态,确保数据处理的正确性。然而,当遇到...
DBUnit 是一个 Java 开发者常用的数据库测试工具,它与JUnit等测试框架配合,能够帮助开发者在测试过程中管理和填充数据库,确保数据的一致性和准确性。本文将深入探讨如何结合Ant构建自动化测试流程,利用DBUnit...
在使用 DbUnit 进行数据库测试时,用户需要连接到真实数据库,并拥有对数据库或者至少是其中的模式(schema)的独占访问权限,以免不同的开发人员同时运行测试时相互冲突。 DbUnit 的使用场景非常广泛,例如可以...
在测试这个方法时,可以使用 DbUnit 来准备特定的测试数据,比如插入或更新一些学生记录,然后调用 `findBySid()` 方法,并验证其返回的结果是否符合预期。测试结束后,DbUnit 会自动清理这些测试数据,将数据库恢复...
DbUnit 提供了一种方法来管理这些状态,允许开发者在测试开始前设定数据库的初始数据,执行测试后则可以验证数据库是否处于预期状态,或者在每次测试之间清理数据库,确保测试的隔离性。 DbUnit 的核心功能包括: ...