当前位置: 首页 > 面试题库 >

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

祖利
2023-03-14
问题内容

我想一次删除多个数据库条目。仅当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);


 类似资料:
  • 我需要在一个批处理中向一个表中插入多行。在DatabaseClient中,我找到了insert()语句,并使用了(Publisher objectToInsert)方法,该方法有多个对象作为参数。但它是否会将它们放入一批中?另一种可能的解决方案是连接。createBatch(),但它有一个drowback:我无法在那里传递我的实体对象,也无法从实体生成sql查询。 那么,可以在r2dbc中创建批插

  • 我注意到terraform只会在资源上运行“file”、“remote exec”或“local exec”一次。一旦资源被调配,如果“远程执行”中的命令被更改,或者调配器“文件”中的文件被更改,则terraform将不会对实例进行任何更改。那么,如何让terraform在每次运行terraform应用时都运行provisioner“file”、“remote exec”或“local exec”

  • 问题内容: 我想问一下如何多次执行1条命令 例如此代码 我要运行500次,该怎么办? 谢谢 问候威廉姆斯 问题答案: 使用循环, 请阅读基本的Java教程。可以在这里找到一个

  • 本文向大家介绍如何在TestNG中多次执行特定的测试方法(例如5次)?,包括了如何在TestNG中多次执行特定的测试方法(例如5次)?的使用技巧和注意事项,需要的朋友参考一下 我们可以在invocationCount helper属性的帮助下多次执行特定的测试方法(例如5次)。 示例 在Java类文件中,将invocationCount设置为5的方法将导致admin中的Login是一条成功消息,该

  • 问题内容: 到目前为止,我已经看到了这些问题的答案2,)建议使用GCD的这样: 输出: 等一下 是一个变量,因此我可以轻松做到这一点: 输出: 所以,是没有用的,如果我们我可以改变的价值!转换成常量并非易事,因为它需要类型化。 那么我们应该放弃Swift吗?有没有一种安全的方法可以只执行一次代码? 问题答案: 由闭包初始化的静态属性是延迟运行的,最多只能运行一次,因此尽管被调用了两次,但它仅打印一

  • 问题内容: 我想一次从JTable删除几行,但一次只能删除一行。JTable一次只能允许一个选择吗?如果我想通过选择删除多行,java是否允许我们这样做?给定的代码一次只能删除一行,即使我选择了多行也是如此。 是连接到MySql数据库的类。 是变量的名称 是通过使用Getter Setter类从MySql导入数据来更新我的行和列的函数 这是我尝试过的代码: 问题答案: 下面显示了如何从JTable