Я использую Spring MVC и SimpleJdbcInsert для вставки объектов в базу данных MySQL. Я хотел бы установить пустой вход на NULL
в базе данных, а не ''
. У меня есть довольно много полей, и я надеюсь на способ сделать это, вручную не проверяя каждое значение.
Спасибо!
Таким образом, я - идиот. Несколько ошибок, объединенных с моей стороны, привели меня полагать, что корректные ответы ниже не были корректны. Я записал PropertyEditorSupport как это:
class StringEditor extends PropertyEditorSupport {
public void setAsText(String text) {
String value = text.trim();
if ("" == value) {
setValue(null);
} else {
setValue(value);
}
}
}
Существует две проблемы:
Спасибо за справку, и жаль о моей "ошибке оператора"!
Brett
Класс, который вы ищете:
org.springframework.beans.propertyeditors.StringTrimmerEditor
Если вы создадите его с истиной
, он преобразует пустые / пробельные строки в null. Как зарегистрировать его в подшивке, зависит от того, хотите ли вы, чтобы он использовался по умолчанию или применялся только к определенным представлениям.
например, на одном контроллере вы можете просто добавить сюда
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));
}
Возможно, вы можете использовать пользовательский Binder
Установите значение по умолчанию для дополнительных полей в NULL - на самом деле, это не NULL по умолчанию?
Проанализируйте входную строку, а затем явно укажите только заполненные столбцы с помощью
usingColumns
ой, и я бы посоветовал всегда дезинфицировать ваш вклад ...