5

如何List从单个查询中删除记录JOOQ?这可以通过JOOQAPI 实现吗?或者我必须一个一个地删除记录,只得到一个记录触发查询等等?

4

1 回答 1

5

是的,你可以这么做!

使用批处理语句

您可以通过批量删除记录

例子:

MyTableRecord record1 = //...
MyTableRecord record2 = //...
DSL.using(configuration).batchDelete(record1, record2).execute();

这将生成一个 JDBC 批处理语句,它的执行速度比单个删除快得多。

使用带有 IN 谓词的单个 DELETE 语句

另一种选择是创建一个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();
于 2013-10-03T15:08:45.177 回答