编程语言
首页 > 编程语言> > java-JOOQ:删除记录列表中的一枪?

java-JOOQ:删除记录列表中的一枪?

作者:互联网

如何从JOOQ中的单个查询中删除记录列表? JOOQ API有可能吗?还是我必须一一删除记录,只得到一个记录触发查询等等?

解决方法:

是的,你可以这么做!

使用批处理语句

您可以通过以下方式批量删除记录

> DSLContext.batchDelete(UpdatableRecord...)
> DSLContext.batchDelete(Collection<? extends UpdatableRecord<?>>)

例:

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

这将生成JDBC批处理语句,其执行速度比单个删除操作快得多.

将单个DELETE语句与IN谓词一起使用

另一种选择是像这样创建单个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();

标签:jooq,sql,java
来源: https://codeday.me/bug/20191122/2061696.html