java - 如何使用 JdbcTemplate 删除多行

标签 java spring spring-jdbc

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

关于java - 如何使用 JdbcTemplate 删除多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37538913/

相关文章:

java - 在 spring 安全过滤器中返回自定义错误

java - 如何保存复合类

java - 将多个表返回到 spring jdbc 模板的存储过程

java - 异常: java. lang.ClassNotFoundException : org. apache.commons.dbcp.BasicDataSource

java - 在另一个方法中使用时,无法解析 JComponent 名称

java - 我确定最畅销产品的逻辑是否正确?

spring - 从 DTO 填充实体的最佳方法是什么

mysql - MySql 函数的 SimpleJdbcCall 产生 "Can' t 为存储函数调用的返回值设置 IN 参数”

java - 编译器错误: Java

java - 无法在 RAD 7.5 中执行主方法类