2016-05-31 2 views
3

Хотите удалить несколько строк с помощью JdbcTemplate. В приведенном ниже коде msgNos представляет собой переменную String, содержащую значение, разделенное запятой, как 26,27. После выполнения инструкций он удаляет только одну запись.Как удалить несколько строк с помощью JdbcTemplate

String sqlQuery = " delete from canned_message where msg_no in (?)"; 
Object[] params = {msgNos}; 
int rows = smsdbJdbcTemplate.update(sqlQuery, params); 

ответ

6

Вместо org.springframework.jdbc.core.JdbcTemplate использования org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate, где вы можете использовать параметр с именем.

Тогда в запросе вы можете передать List в качестве значения параметра в в пункте

String sqlQuery = "delete from canned_message where msg_no in (:msgNos)"; 
List<Integer> params = <array list of number>; 
Map namedParameters = Collections.singletonMap("msgNos", params); 
int rows = smsdbJdbcTemplate.update(sqlQuery, namedParameters); 

Примечание: Я использовал List<Integer> использовать соответствующий тип данных, как вам нужно.

+0

Спасибо за ваше предложение, он работал с NamedParameterJdbcTemplate –

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