- All Superinterfaces:
Scope
- All Known Subinterfaces:
BindingSetSQLOutputContext<U>
,BindingSetStatementContext<U>
This is a type of Scope
that can manage resources on behalf of the
call site, and free / close those resources once the scope ends.
For example, Binding
implementations may wish to create Clob
or InputStream
or other kinds of resources in order to bind them to
JDBC. Instead of remembering to close them manually through some delicate
logic involving e.g. clever usage of ThreadLocal
, implementations can
register their resources with the methods exposed here, and jOOQ will take
care of freeing / closing them at the right moment.
Example:
class StreamingLobBinding implements Binding<String, File> {
...
public void set(BindingSetStatementContext<File> ctx) {
ctx.statement()
.setBinaryStream(ctx.index(), ctx.closeAfterExecution(new FileInputStream(ctx.value())));
}
}
- Author:
- Lukas Eder
-
Method Summary
Modifier and TypeMethodDescription<R extends Closeable>
RautoClose(R closeable)
Register aCloseable
for auto closing after this scope ends.Register aArray
for auto freeing after this scope ends.Register aBlob
for auto freeing after this scope ends.Register aClob
for auto freeing after this scope ends.Register aSQLXML
for auto freeing after this scope ends.
-
Method Details
-
autoFree
Register aArray
for auto freeing after this scope ends.- Returns:
- The argument array, for convenience.
-
autoFree
Register aBlob
for auto freeing after this scope ends.- Returns:
- The argument blob, for convenience.
-
autoFree
Register aClob
for auto freeing after this scope ends.- Returns:
- The argument clob, for convenience.
-
autoFree
Register aSQLXML
for auto freeing after this scope ends.- Returns:
- The argument xml, for convenience.
-
autoClose
Register aCloseable
for auto closing after this scope ends.- Returns:
- The argument closeable, for convenience.
-
autoClose
Register anAutoCloseable
for auto closing after this scope ends.- Returns:
- The argument closeable, for convenience.
-