没用过你说的那玩意儿,呵呵
帮你顶一下。
帮你顶一下。
解决方案 »
- 在servlet中怎么把字符串转换成jquery中的Datatable插件需要的格式
- 初出菜鸟
- org.hibernate.exception.ConstraintViolationException 程序异常 求高手解答呀!!!!
- jodconverter2.2.1 和openoffice2.4 tomcat5.0
- Struts html:select 下拉框动态链接数据问题
- 请教学习Struts 1.2的经典书籍
- 求教
- 创建XmlBeanFactory报错!!!!!!!!!!!!
- 为什么tomcat自带的jsp可以运行,但是其它的jsp就是运行不了呢?
- struts中,Action类如何返回另一个Action的execute方法的ActionForward结果?
- jsp中回车执行一个js函数?
- 翻译Servlet接口的英文(API)
感觉比较简单的办法有这么几个,但其实核心思想时一致的,都是固定表结构。这样你每次插入的数据不想比较的字段即使用也插不进去,想比较的数据即使为null,也会插入。
第一种方案:准备两个数据库,一个用来存储期望值,一个用来存储实际运行得到的值,不过这样有些奢侈。
第二种方案,也是我现在采取的方案,在内存中做出一个DataSet来,这样每次读入文件时用这个表做模板,也可以达到目的。呵呵,看看下面的代码你就明白了。
public IDataSet makeTemplateDataSet(String tbl[], Properties selectSqls)
throws DataSetException, SQLException {
if(tbl==null||selectSqls==null) {
return null;
}
// 取得数据库连接
IDatabaseConnection conn = ;
DefaultDataSet templateDataSet = new DefaultDataSet();
for (int i = 0; i < tbl.length; i++) {
ITable actualTable =
conn.createQueryTable(tbl[i], (String)selectSqls.get(tbl[i]));
DefaultTable defalutTbl =
new DefaultTable(
tbl[i],
actualTable.getTableMetaData().getColumns());
ITable itbl = DBUnitExecutor.makeDefaultTbl(tbl[i], selectSqls
.getProperty(tbl[i]));
templateDataSet.addTable(itbl);
return templateDataSet;
}
return templateDataSet;
}
用上面做的模板DataSet以后这样你就可以使用FlatXmlDataSet中的构造器去得到自己想要比较的dataSet了。
new FlatXmlDataSet(xmlfilename, templateDataSet);
呵呵,就这么多,还有如果你只想比较一两个字段,可以选择过滤掉没用的列,这个自己可以查找dbunit doc