Как обновить неизвестное количество столбцов в MySQL-PreparedStatement с помощью JDBC? - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть Java-функция, подобная этой:

public void update(Integer id, String firstname, 
                   String lastname, Integer age){}

Теперь я хочу сделать обновление с помощью подготовленного состояния в таблице MySQL, которое обновляет столбцы, представленные в параметрах функции Java.Поэтому я хочу сделать что-то вроде этого (в функции обновления):

PreparedStatement = connection.prepare(
   "UPDATE table SET id = ?, firstname = ?, ...");

Моя проблема в том, что некоторые параметры могут быть NULL, например, когда их не нужно обновлять.Так что в конце я смогу позвонить ...

update(null, "Tom", null, 19);

... когда я только хочу обновить имя и возраст.Так, как я могу понять это, не используя многократные утверждения / переписывая каждый столбец?

1 Ответ

0 голосов
/ 22 сентября 2019

Я довольно распространенный способ создания динамических операторов SQL в Java - использование библиотек SQL Builder.Они, как правило, очень просты в использовании, особенно в таких простых случаях, как этот.Возможно, вы захотите проверить библиотеки QueryDSL и JOOQ .Вы также можете напрямую манипулировать строками оператора, но я бы не советовал этого делать, поскольку он подвержен ошибкам и создает риски для безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...