传递空值以绑定Groovy中的参数

问题描述 投票:0回答:1

我正在尝试编写一个小的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。

我如何确保bind参数为空时显式将NULL传递给数据库?

sql groovy
1个回答
0
投票

您可以使用Elvis运算符:

jobList.eachWithIndex{ it, i ->
   ....   
   eExt = it[2] ?: 'NULL'
   ....
}
© www.soinside.com 2019 - 2024. All rights reserved.