Top Description Methods
org.jooq

public Interface Block

extends RowCountQuery
Known Direct Implementers
org.jooq.impl.BlockImpl
Imports
org.jooq.impl.DSL, .QOM, .QOM.UnmodifiableList, org.jetbrains.annotations.NotNull, .ApiStatus.Experimental

A procedural block.

Many RDBMS support procedural languages and in those languages, blocks are an essential means of grouping logic and creating scope. Some databases support executing anonymous blocks, in case of which the jOOQ Block can be executed like any other Query. This works in a similar way as a Batch containing multiple queries, but unlike a Batch, a Block can contain procedural code as well.

Example:


// Assuming import static org.jooq.impl.DSL.*;

// Wrapping SQL statements only
using(configuration)
   .begin(
       insertInto(TABLE1).columns(TABLE1.COL).values(1),
       insertInto(TABLE2).columns(TABLE2.COL).values(2),
       insertInto(TABLE3).columns(TABLE3.COL).values(3)
   )
   .execute();

// Wrapping procedural code
Variable<Integer> i = var("i", SQLDataType.INTEGER);
using(configuration)
   .begin(
       for_(i).in(1, 3).loop(
           insertInto(TABLE1).columns(TABLE1.COL).values(i)
       )
   )
   .execute();

Instances can be created using DSL#begin(Statement...) and overloads.

Author
Lukas Eder

Method Summary

Modifier and TypeMethod and Description
public @NotNull QOM.UnmodifiableList<? extends Statement>
$statements()

Experimental query object model accessor method, see also QOM.

Method Detail

$statementsback to summary
public @NotNull QOM.UnmodifiableList<? extends Statement> $statements()

Experimental query object model accessor method, see also QOM. Subject to change in future jOOQ versions, use at your own risk.

Annotations
@Experimental
@NotNull