java - 尽管异常,DBunit 仍插入 xml

标签 java xml exception dbunit continue

我正在尝试将 DBunit 用于项目。 对于这个项目,我尝试使用以下命令从 XML 文件插入大量数据:

DatabaseOperation.INSERT.execute(conn, new FlatXmlDataSet(new File(file)));

问题是当我遇到异常 (SQLException) 时,插入操作会停止,并且不会插入其余数据。我正在寻找一种尽管出现异常但仍可以继续插入的方法,但到目前为止还没有任何结果。

感谢您的帮助

最佳答案

我建议你这样做:

DatabaseOperation.CLEAN_INSERT.execute(conn, new FlatXmlDataSet(new File(file)));

这是因为如果您只执行 DatabaseOperation.INSERT 并且要插入的数据存在于数据库中,则操作将失败。这样操作会先删除所有表记录,然后再进行插入。

此外,在您的 xml 文件中,表必须按正确的顺序插入,以避免 完整性约束错误。

读取 xml 文件:

FlatXmlDataSetBuilder flatXmlDataSetBuilder = new FlatXmlDataSetBuilder();
FileInputStream fileInputStream = new FileInputStream("XMLpath");
IDataSet iDataSet = flatXmlDataSetBuilder.build(fileInputStream);
DatabaseOperation.CLEAN_INSERT.execute(conn, iDataset);

关于java - 尽管异常,DBunit 仍插入 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39266010/

相关文章:

java - 我可以在不更改java代码的情况下在浏览器中打开webview链接吗?

java - 如何从放置在另一个类/包中的按钮切换选项卡?

ruby - Nokogiri模式限制

android - 资源样式项名称 “android:blablabla”红色突出显示,不工作,无错误

java - 在Java中,为什么要在catch block 中指定异常类型?

java - 具有递归结构的 jackson 序列化

java - 如何在 JPA 和 Hibernate 的列名中使用空格

c++ - 使用 libxml2 库读取 xml

c++ - 捕获 boost::bad_lexical_cast 时,我可以访问要转换的字符串/标记吗?

.net - Try Catch 错误处理的最佳实践