передача нуля для привязки параметров в Groovy - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь написать небольшой groovy скрипт, который считывает данные из файла CSV, оценивает данные и записывает данные в SQL БД.

Некоторые из прочитанных данных из Строка CSV может быть пустой - в этом случае вставка должна передать NULL в базу данных. Из соображений производительности и безопасности я создаю один sqlQuery перед итерацией eachWithIndex и заполняю параметры внутри итерации.

    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. Переменная «eExt» может быть заполнена или иметь нулевое значение, если данные не существуют в CSV-файле.

Как я могу убедиться, что явный параметр связывания доставляет NULL в базу данных, когда он пуст?

1 Ответ

0 голосов
/ 03 апреля 2020

Вы можете использовать Elvis -оператор:

jobList.eachWithIndex{ it, i ->
   ....   
   eExt = it[2] ?: 'NULL'
   // or
   eExt = it[2] ?: null
   ....
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...