Хобрук: Ваш путь к мастерству в программировании

JDBCTemplate — Как запустить оператор UPDATE с Map‹String, Object› в качестве источника параметров?

Для оператора INSERT можно сделать следующее (db — это автоматически подключаемый JdbcTemplate):

var insert = new SimpleJdbcInsert(db)
    .withTableName("orders")
    .usingGeneratedKeyColumns("id");

Map<String, Object> params = new HashMap<String, Object>();
params.put("clientId", 25);

var key = insert.executeAndReturnKey(params);

Я не могу найти эквивалентный метод обновления, который не требует передачи каждого аргумента по одному. В этом я активно использую рефлексию и дженерики, и я просто не могу перечислить каждый аргумент. Я хотел бы иметь возможность сделать что-то вроде этого:

db.update("UPDATE orders set clientId = ? WHERE id = ?", params, id);

Где params — это карта, содержащая имена и значения параметров для обновления, а id — это идентификатор строки, на которую нужно повлиять.

Это возможно?


  • @Kayaman, пожалуйста, напишите ответ, и я приму его. Спасибо! 19.05.2020

Ответы:


1

JdbcTemplate использует только заполнители ?, но имеет тесно связанный класс NamedParameterJdbcTemplate, который по сути является тем же классом (он делегирует JdbcTemplate), но с именованными заполнителями, такими как :clientId.

19.05.2020
Новые материалы

Мой процесс подачи заявки в Школе программного обеспечения и дизайна Тьюринга
Мой последний пост на Medium был в конце августа, и в нем я пообещал написать еще раз, рассказывая историю моего процесса подачи заявки в Школу программного обеспечения и дизайна Тьюринга ...

Генерация ваших собственных удивительных QR-кодов с использованием Python
QR-код (код быстрого ответа) — это разновидность матричных штрих-кодов (или двумерных штрих-кодов), изобретенных в 1994 году японской автомобильной компанией Denso Wave . Штрих-код —..

Прогресс в технологии Трансформеров часть 3
Многомасштабный управляющий сигнальный преобразователь для бесфазного синтеза движения (arXiv) Автор: Линтао Ван , Кун Ху , Лей Бай , Юй Дин , Ваньли Оуян , Чжиюн Ван . Аннотация:..

Представляем поддержку компонентов Vue.js. Мгновенный HMR и многое другое.
Хотя у FuseBox уже был плагин Vue, он был базовым и не имел многих функций, которые делали работу с Vue.js такой приятной. Однако с этим выпуском мы рады сообщить, что в FuseBox..

Приключения в Javascript, часть 1
Я продолжаю думать о том, чтобы писать больше, но чем больше я думаю об этом, тем меньше я это делаю. Итак, сегодня я перестал думать и начал писать. Отсюда можно только спускаться… В..

Понимание дженериков в TypeScript: подробное руководство
Введение TypeScript, строго типизированный надмножество JavaScript, хорошо известен своей способностью улучшать масштабируемость, удобочитаемость и ремонтопригодность приложений. Одной из..

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..