【发布时间】:2020-04-03 08:51:52
【问题描述】:
我正在尝试编写一个小型 groovy 脚本,它从 csv 文件读取数据、评估数据并将数据写入 SQL DB。
从 csv 行读取的一些数据可以为空 - 在这种情况下,插入应该将 NULL 传递给数据库。出于性能和安全原因,我在 eachWithIndex 迭代之前构建了一个 sqlQuery 并在迭代中填充参数。
def sqlQuery="""INSERT INTO database (
[Id],
[document],
[extension],
[token]
) VALUES (?, ?, ?, NULL)"""
jobList.eachWithIndex{ it, i ->
eIDenter = it[0]
eDoc = it[1]
eExt = it[2]
sqlParams = [eID, eDoc, eExt]
...
}
虽然我可以简单地将 NULL 值传递给迭代中的列,但这些列始终为空(因为它们在 csv 文件中不存在),但我不确定这对于 groovy 中的绑定参数是如何工作的。 如果 csv 文件中不存在数据,则可以填充变量“eExt”或为空。
如何确保绑定参数显式在数据库为空时将 NULL 传递给数据库?
【问题讨论】: