应用间的数据集成(EAI)通常是两条路子:
一是使用现成的EAI、ETL框架,定义一堆XML格式的映射文件,再写一些特殊转换的transform class。但这样的工程通常比较宏大,用到最后经常会发觉还不如自己写程序快。
二是直接自己写程序用JDBC->SQL转换,快则快矣,但经常会写的比较乱、特别是表多列多的时侯。
所以,我又会用万能老倌DBUnit+Dom4j来导出导入。
DBUnit因为具有xml<-->database的功能,所以很多地方都能够担任。用XML来写EAI,比SQL语句清晰,而且效果和写映射文件差不多,但因为都写在程序里,用不着像EAI框架那样映射定义文件、转换类翻来覆去四处看。
另外,它本身带了REFRESH(如果不存在就插入,否则就更新,以主键为依据), CLEAN_INSERT(全部删除再插入,和ReFresh比,会把不在XML中的数据删除)等几种操作,又简省了编程的功夫。
例子代码:
//Dom4j创建Document并向其赋值
Document document = DocumentHelper.createDocument();
document.addElement("dataset");
Element root = document.getRootElement();
while(rs.next())
{
item.attribute("bs").setValue(rs.getString("orderItemNo"));
root.add(item.createCopy());
}
//把Documenth转换为DBUnit的DataSet并解决中文编码问题
InputSource is = new DocumentSource(document).getInputSource();
is.setEncoding("GBK");
IDataSet dataSet = new FlatXmlDataSet(is);
//建立DBUnit数据库连接
Connection conn = .....;
DatabaseConnection dbCon = new DatabaseConnection(conn);
//执行插入操作
DatabaseOperation.INSERT.execute(dbCon, dataSet);
另外在我的项目中,目标数据库中有很多不明所以的列(约200个),不填呢又会出错,填呢又不知道填什么。所以,我先用DBUnit对它进行了采样,item是从目标数据库得到的一个样本,建立Document的过程中,我不断使用item.createCopy()把这条样本克隆出来,只置换了其中小部分源数据库中的需要更改的值。这又是DbUnit的一个Bonus :)
分享到:
相关推荐
文件名“dbunit-export-import”可能包含了示例代码或者脚本,展示了如何使用DBUnit进行数据的导出和导入。这些示例可能包括如何配置DBUnit,定义数据格式,以及如何在测试前后触发数据操作的代码片段。通过阅读和...
DBUnit 是一个开源的 Java 库,专门用于数据库测试,它提供了一种方式来管理和操作数据库的数据,包括数据的导入导出、备份和恢复。在本文中,我们将深入探讨如何利用 DBUnit 进行数据库的备份与恢复。 首先,我们...
通过深入学习这些 API,开发者可以自定义数据导入导出格式,实现与特定数据库系统的兼容,或者扩展 DBUnit 的功能。同时,结合单元测试框架(如 JUnit 或 TestNG),可以编写高效且可靠的数据库测试用例。 在实际...
Dbunit 的核心功能包括数据导入导出、数据清理、数据填充以及数据比较。它可以将数据库状态定义为一种“数据集”,这种数据集可以是XML、CSV或者Excel格式的文件。这使得开发人员能够方便地创建和维护测试用例的数据...
在Java应用程序的测试过程中,确保数据库状态的一致性是非常重要的,DBUnit 提供了这样的功能,它允许开发者导入和导出数据库数据,以进行精确的测试。 在使用 DBUnit 时,有几个必需的 Jar 包是必不可少的,这些 ...
1. **DBUnit 概述**:DBUnit 提供了一套 XML 数据格式(如 FlatXML 和 IbatisXML),用于导入和导出数据库数据。它支持多种数据库,包括 Oracle、MySQL、SQL Server 等,并且与 JUnit 集成紧密,允许在测试用例执行...
DBUnit 的核心理念是通过导入和导出数据来帮助测试数据库驱动的应用程序,确保代码在不同数据集上的行为一致性。 在进行单元测试时,通常需要在测试前后对数据库进行“清理”,以避免测试之间的相互影响。DBUnit ...
1. 数据导入导出:DbUnit 支持从XML文件导入和导出数据库数据,这样可以方便地创建和恢复数据库的特定状态。XML格式的数据集提供了结构化的数据表示,方便编写和维护。 2. 数据库操作:它提供了一系列API来填充...
DbUnit 是一个针对数据库驱动项目的JUnit...在实际项目中,结合使用DbUnit和其他单元测试框架(如JUnit或TestNG),可以形成强大的测试解决方案,确保整个应用程序的质量,特别是在金融等对数据精确度要求极高的领域。
DBUnit能够导入和导出数据库数据,支持多种格式,如CSV、XML和Excel,从而简化了数据驱动测试的过程。 在“dbunit_jar_and_htmldoc”这个压缩包中,很可能包含了DBUnit的JAR文件和相关的HTML文档。JAR文件是Java...
DBUnit通过导入和导出数据,帮助开发者创建预定义的数据集,这些数据集可以用于模拟各种测试场景。 在“DBUnit_Project_Study.rar”这个压缩包中,我们可以找到关于DBUnit的详细学习资料,包括可能的示例代码、教程...
DbUnit允许用户导入和导出数据库数据到XML或CSV格式,通过`DataSet`的概念,可以在测试前后加载特定的数据状态。这样,即使测试对数据库进行了修改,也可以在测试结束后恢复原始状态。此外,DbUnit还支持各种操作,...
Dbunit是一款强大的Java库,它扩展了JUnit,为数据库提供了结构化数据的导入和导出,使得测试更加方便和可靠。下面将详细介绍如何在Spring中使用Dbunit进行Dao的集成单元测试。 首先,我们需要理解集成测试的概念。...
在这个例子中,`setUp`方法在每个测试之前导入数据集,而`tearDown`方法在每个测试之后恢复数据库到初始状态。测试方法`testMyFunctionality`则可以安全地进行数据库操作的验证。 总的来说,DBUnit是Java开发人员...
DbUnit是一个用于数据库集成测试的Java工具,它允许开发者通过导入和导出结构化数据(通常以CSV或XML格式)来控制测试环境中的数据库状态。这有助于确保测试的隔离性和准确性,因为每次测试前后的数据库状态都可以被...
DBUnit与H2内存数据库结合是进行单元测试的一种高效方法,尤其在开发Java应用程序时,它可以帮助开发者确保数据层的功能正确性。这篇文章将详细介绍如何利用DBUnit和H2内存数据库来构建单元测试环境。 首先,DBUnit...
总的来说,通过集成 DBUnit,Spring Boot 应用可以实现高效的数据库测试,确保在开发过程中数据操作的正确性。这有助于提高代码质量,减少因数据库问题导致的生产故障。在实际项目中,应根据项目需求和团队规范调整...
3. **增强测试覆盖率**:可以针对不同的数据场景进行测试,提高代码覆盖率,确保应用在处理各种数据条件下的行为正确。 **dbunit-mongodb 使用教程** 1. **依赖引入**:首先,在 Java 项目中,需要添加 dbunit-...
DBUnit提供了数据导入/导出功能,以及一系列的数据操作方法,如INSERT、UPDATE、DELETE等。它支持多种数据库格式,包括CSV、XML和Excel,使得数据的准备和验证变得简单易行。在Spring框架中整合DBUnit,可以利用...