【问题标题】:DBunit insert xml despite exception尽管出现异常,DBunit 插入 xml
【发布时间】:2016-09-01 08:05:41
【问题描述】:
我正在尝试将 DBunit 用于项目。
对于这个项目,我正在尝试从 XML 文件中插入大量数据:
DatabaseOperation.INSERT.execute(conn, new FlatXmlDataSet(new File(file)));
问题是当我遇到异常(SQLException)时,插入操作停止并且其余数据没有插入。我正在寻找一种方法来继续插入,尽管有异常,但到目前为止还没有。
感谢您的帮助
【问题讨论】:
标签:
java
xml
exception
dbunit
continue
【解决方案1】:
我建议你这样做:
DatabaseOperation.CLEAN_INSERT.execute(conn, new FlatXmlDataSet(new File(file)));
这是因为如果您只执行 DatabaseOperation.INSERT 并且您要插入的数据存在于 DB 中,则操作将失败。这样操作会先删除所有表记录,然后再进行插入操作。
此外,在您的 xml 文件中的表必须以正确的顺序插入以避免
完整性约束错误。
读取xml文件:
FlatXmlDataSetBuilder flatXmlDataSetBuilder = new FlatXmlDataSetBuilder();
FileInputStream fileInputStream = new FileInputStream("XMLpath");
IDataSet iDataSet = flatXmlDataSetBuilder.build(fileInputStream);
DatabaseOperation.CLEAN_INSERT.execute(conn, iDataset);