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