具有可变长度IN子句的JDBC更新

时间:2019-01-10 00:20:58

标签: java jdbc kotlin spring-jdbc

所以我有一个查询,我需要像UPDATE entity WHERE id IN (:ids)一样运行。我知道在做SELECT时我可以做

val sql = "SELECT * FROM entity WHERE id IN (:ids)";
jdbcTemplate.queryForList(sql, Collections.singletonMap("ids", ids));
有什么方法可以对“ UPDATE”查询完成此操作,而不必将我的ID列表转换成逗号分隔的字符串并像这样调用它
val params = ids.joinToString(",")
jdbcTemplate.update(sql, mapOf(Pair("ids", params)))

编辑:原来我列出的第二种方法甚至都行不通,因为它需要Double并得到一个字符串

1 个答案:

答案 0 :(得分:0)

在Java中,您可以这样做:

String joinedIds = Arrays.stream(tradeListIds).collect(Collectors.joining(", "));