Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JOOQ:一次性删除记录列表?_Java_Sql_Jooq - Fatal编程技术网

Java JOOQ:一次性删除记录列表?

Java JOOQ:一次性删除记录列表?,java,sql,jooq,Java,Sql,Jooq,如何从JOOQ中的单个查询中删除列表?这在JOOQAPI中是否可行?或者我必须一个接一个地删除记录,只需获得一个记录火灾查询等等?是的,你可以这样做 使用批处理语句 您可以通过以下方式批量删除记录: 或 例如: MyTableRecord record1 = //... MyTableRecord record2 = //... DSL.using(configuration).batchDelete(record1, record2).execute(); 这将生成一个JDBC批处理语

如何从
JOOQ
中的单个查询中删除
列表
?这在
JOOQ
API中是否可行?或者我必须一个接一个地删除记录,只需获得一个记录火灾查询等等?

是的,你可以这样做

使用批处理语句 您可以通过以下方式批量删除记录:

例如:

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();
DSLContext create=DSL.using(配置);
//此中间结果仅用于以后提取ID值
结果=create.newResult(我的表格);
结果:添加(记录1);
结果:添加(记录2);
create.delete(我的表格)
.where(MY_TABLE.ID.in(result.getValues(MY_TABLE.ID))
.execute();

您通过了记录1、记录2……我们可以通过记录列表吗?我是说收集?查看更新的答案。请随意浏览Javadoc。通常,许多问题都可以通过API立即得到回答。