gpt4 book ai didi

java - 如何在 JdbcTemplate 中执行多批删除?

转载 作者:行者123 更新时间:2023-12-03 19:44:52 26 4
gpt4 key购买 nike

我想一次删除多个数据库条目。仅当 3 个字段匹配时才应删除每个条目(此处:姓名、电子邮件、年龄)。

如果我只想删除单个属性,我会选择:

String sql = "DELETE FROM persons WHERE (email) IN (?)";

JdbcTemplate template;
template.execute(sql, Arrays.asList(emails...));

但是如果我的条件是由多个字段组成的呢?
String sql = "DELETE FROM persons WHERE (name, email, age) IN (?, ?, ?)";

JdbcTemplate template;
template.execute(sql, ...); ???

条件应始终匹配所有 3 个字段 ( AND )!

最佳答案

使用 batchUpdate(sql, batchArgs, argTypes) 方法。

String sql = "DELETE FROM persons WHERE name = ? AND email = ? AND age = ?";
int[] argTypes = { Types.VARCHAR, Types.VARCHAR, Types.INTEGER };

List<Object[]> batchArgs = new ArrayList<>();
batchArgs.add(new Object[] { "John Doe", "john@example.com", 42 });
batchArgs.add(new Object[] { "Jane Smith", "jane@example.com", 47 });
. . .

JdbcTemplate template = ...;
int[] rowCounts = template.batchUpdate(sql, batchArgs, argTypes);

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com