【问题标题】:Loading null values with CsvDataFileLoader in dbunit在 dbunit 中使用 CsvDataFileLoader 加载空值
【发布时间】:2011-06-08 13:48:04
【问题描述】:

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

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

有没有办法将 null 值放入加载到我们数据库中的 csv 中。

我认为没有,我想nullNULL 都会被解释为它们的字符串值。

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

【问题讨论】:

  • 据我所知,可以使用 XML 加载器,但不能使用 CSV

标签: dbunit


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 根据同一个文件(CsvDataSetWriter)有一个引号常量,所以你可以把"null"放在你的csv中,我会假设它会使用字符串null。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-05
  • 2015-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-24
相关资源
最近更新 更多