【问题标题】:JDBC update with variable length IN clause [duplicate]具有可变长度 IN 子句的 JDBC 更新 [重复]
【发布时间】:2019-01-10 00:20:57
【问题描述】:

所以我有一个查询需要像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 并得到一个字符串

【问题讨论】:

    标签: java jdbc kotlin spring-jdbc


    【解决方案1】:

    在 Java 中,您可以这样做:

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

    【讨论】:

    • 嘿,知道这很有用。谢谢。实际上并没有解决我的问题,因为它期望双倍因为数据库条目是INT(11)。我正在使用 Kotlin 并更新了我上面的示例(即使它不起作用)以更 kotlin 的方式进行。
    猜你喜欢
    • 2018-07-19
    • 2014-02-14
    • 2020-08-31
    • 2021-06-02
    • 2011-02-26
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    相关资源
    最近更新 更多