2017-02-07 2 views
0

Я новичок работать над весной, и теперь я получил запрос, но не знаете, как использовать JdbcTemplate для работы на нем, запрос выглядит следующим образом:Как может JdbcTemplate выполнить обновление заявление и вернуть переменной

UPDATE table set Seq = @seq: = Seq + 1 WHERE id =?; SELECT @seq как итог;

Я пытаюсь использовать jdbcTemplate.executeQuery, но при этом обнаружится ошибка: Не удается выполнить инструкции по обработке данных с помощью executeQuery().

Я пытаюсь использовать jdbcTemplate.executeUpdate, но, похоже, это только вернуть пострадавших строки

Есть ли кто-нибудь знает, как я могу добиться этого запроса и возвращает измененное значение?

ответ

0

Вы должны иметь возможность выполнить оператор UPDATE сначала с использованием update, а затем выполнить оператор SELECT, используя queryForObject. Переменная сохраняется в сеансе, связанного с тем же соединением.

jdbcTemplate.update("UPDATE table set Seq = @seq := Seq + 1 WHERE id= ?", yourId); 
int total = jdbcTemplate.queryForObject("SELECT @seq as total", Integer.class); 
+0

Я пробовал свой код, и результат для всего значения null. цель этого запроса хотела бы увеличить счетчик и вернуть новое значение счетчика обратно в программу в рамках одного и того же запроса. и желаем, чтобы, если одновременно выполняется несколько соединений, запрос может возвращать правильный счетчик – ahyan

Смежные вопросы