mem*_*und 2 java sql spring spring-jdbc
我想一次删除多个数据库条目。仅当3个字段匹配时(此处:姓名,电子邮件地址,年龄),才应删除每个条目。
如果我只想删除一个属性,则可以:
String sql = "DELETE FROM persons WHERE (email) IN (?)";
JdbcTemplate template;
template.execute(sql, Arrays.asList(emails...));
Run Code Online (Sandbox Code Playgroud)
但是,如果我的病情是由多个领域构成的,那该怎么办?
String sql = "DELETE FROM persons WHERE (name, email, age) IN (?, ?, ?)";
JdbcTemplate template;
template.execute(sql, ...); ???
Run Code Online (Sandbox Code Playgroud)
条件应始终匹配所有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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3245 次 |
| 最近记录: |