如何使用JdbcTemplate删除多行

Sun*_*aik 4 java spring spring-jdbc

想要借助于删除多行JdbcTemplate.在下面的代码中msgNos是一个String变量,包含逗号分隔值,如26,27.执行语句后,它只删除一条记录.

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

Kar*_*gam 6

而不是org.springframework.jdbc.core.JdbcTemplateorg.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);
Run Code Online (Sandbox Code Playgroud)

注意:我已经List<Integer>根据需要使用了适当的数据类型.