应用间的数据集成(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 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类DBUNIT 基类...
用于mvn项目中导入、导出数据库表的文件 mvn dbunit:export 导出 mvn dbunit:operation 导入
NULL 博文链接:https://coderdream.iteye.com/blog/2142583
Dbunit 基本原理就是在跑测试用例运行之前对数据表做用户定义的操作,清空不想要的数据,插入用户自定义的数据,使得该数据表处于用户知道的一种状态。而用户自定义的数据使用项目里的一个 xml 文件来表示。 Xml ...
最新的最全的dbunit jar包以及入门教程
dbunit-2.4.9 源码 http://www.dbunit.org/apidocs/index.html 代码 API
DBUNIT使用的详细文档
通过DBUNIT做批量对比测试
dbunit使用必需Jar包,总共4个必需Jar包
dbunit的jar包,版本2.2
网上下载到的dbunit的jar包默认不支持excel2007及以上版本的数据表导入导出功能,因项目需要,本人对源码进行了部分修改。 目前数据库的导入导出等功能已经在excel2013版本上测试通过。 ps:个人下载资源需求较多,...
lotaris-dbunit-maven-plugin 用于创建/删除域、部署应用程序和管理资源的插件。用法将以下依赖项放入您的 pom.xml < plugin>< groupId>...
NULL 博文链接:https://kanglecjr.iteye.com/blog/2158320
dbunit入门实例 dbunit入门实例 dbunit入门实例 dbunit入门实例
dbunit开发文档,供需要用dbunit进行开发的人使用
dbunit2.2完全包 数据库单元测试
功能列表: 清理所有数据库表完整的数据库导出为 DBunit 数据集部分数据库导出仅选择您感兴趣的表在数据库中导入一个符合数据库结构的DBunit数据集获取有关表的信息并了解尊重外键约束的正确填充顺序。 MySql 随机...
文档是关于DBUnit的ant的使用文档,通俗易懂
dbunit-2.2.3..jar dbunit-2.4.2.jar dbunit-2.5.3.jar dbunit-2.7.0.jar 发现每个版本对JDK是有要求的,比如2.7 只能用于JDK1.8版本,所以整理好几个jar包挑选适合自己的
直接从http://www.dbunit.org/apidocs/index.html上下载的HTML文件的压缩包。 因为没有做成CHM,所以只要1分就行~