是的,你可以这样做!
您可以通过以下方式批量删除记录
DSLContext.batchDelete(UpdatableRecord...)
或者DSLContext.batchDelete(Collection<? extends UpdatableRecord<?>>)
例子:
MyTableRecord record1 = //...
MyTableRecord record2 = //...
DSL.using(configuration).batchDelete(record1, record2).execute();
Run Code Online (Sandbox Code Playgroud)
这将生成一个 JDBC 批处理语句,它的执行速度比单个删除快得多。
另一种选择是创建一个单独的DELETE
语句:
DSLContext create = DSL.using(configuration);
// This intermediate result is only used to extract ID values later on
Result<MyTableRecord> result = create.newResult(MY_TABLE);
result.add(record1);
result.add(record2);
create.delete(MY_TABLE)
.where(MY_TABLE.ID.in(result.getValues(MY_TABLE.ID))
.execute();
Run Code Online (Sandbox Code Playgroud)