在dbunit中使用CsvDataFileLoader加载空值

时间:2011-06-08 13:48:05

标签: dbunit

我们正在使用CsvDataFileLoader加载我们的参考数据,如下所示:

new InsertIdentityOperation(DatabaseOperation.CLEAN_INSERT)
            .execute(connection,
                    new CsvDataFileLoader().load("/sql/ReferenceData/"));

无论如何将null值放入加载到我们的数据库中的csv中。

我认为不存在,我认为nullNULL都会被解释为字符串值。

有没有人设法做到这一点或知道解决这个问题?

1 个答案:

答案 0 :(得分:3)

CsvDataFileLoader使用CsvURLProducer加载和解析数据。

在第145行的dbunit 2.4.8类中,您会看到以下内容:

if (CsvDataSetWriter.NULL.equals(row[col])) {
    row[col] = null;
}

CsvDataSetWriter.NULL包含字符串"null",因此您假设null将被解释为字符串值似乎不正确,您应该在CSV中使用它。

当然这意味着你的字段中不能包含字符串"null",但我确信这通常不是必需的。