首页 > 解决方案 > 带有可变长度 IN 子句的 JDBC 更新

问题描述

所以我有一个查询需要像UPDATE entity WHERE id IN (:ids). 我知道在做的时候SELECT我可以做类似的事情

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

编辑:结果我列出的第二种方式甚至不起作用,因为它需要一个 Double 并得到一个字符串

标签: javajdbckotlinspring-jdbc

解决方案


在 Java 中,您可以这样做:

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

推荐阅读