如何使用 JdbcTemplate 删除多行

How to delete multiple rows with JdbcTemplate

想在 JdbcTemplate 的帮助下删除多行。 在下面的代码中,msgNos 是一个包含逗号分隔值的字符串变量,如 26,27。执行语句后,它只删除了一条记录。

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

而不是 org.springframework.jdbc.core.JdbcTemplate 使用 org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate,您可以在其中使用命名参数。

然后在您的查询中,您可以将 List 作为 in 子句中的参数值传递

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> 根据需要使用适当的数据类型。