Package org.jdbi.v3.core.statement
Class Call
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Configurable<Call>
Used for invoking stored procedures. The most common way to use this is to register
There are some databases, most prominently MS SqlServer that only support limited OUT parameters, especially do not support cursors (for MS SqlServer see Using a stored procedure with output parameters). Those databases may support returning a result set from the procedure invocation, to access this result set use the
OutParameters
with the call and then use the invoke()
method
to retrieve the return values from the invoked procedure.
There are some databases, most prominently MS SqlServer that only support limited OUT parameters, especially do not support cursors (for MS SqlServer see Using a stored procedure with output parameters). Those databases may support returning a result set from the procedure invocation, to access this result set use the
OutParameters.getResultSet()
method to retrieve
the result set from the underlying call operation.-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionfinal Call
Registers with the handle for cleaning when the handle is closed.void
close()
Specify that the result set should be concurrent updatable.final boolean
Returns the configuration registry associated with this object.final StatementContext
Returns the statement context associated with this statement.final Handle
final int
hashCode()
invoke()
Invoke the callable statement.void
invoke
(Consumer<OutParameters> resultConsumer) Invoke the callable statement and process itsOutParameters
results.<T> T
invoke
(Function<OutParameters, T> resultComputer) Invoke the callable statement and process itsOutParameters
results, returning a computed value of typeT
.registerOutParameter
(int position, int sqlType) Register a positional output parameter.registerOutParameter
(int position, int sqlType, CallableStatementMapper mapper) Register a positional output parameter.registerOutParameter
(String name, int sqlType) Register a named output parameter.registerOutParameter
(String name, int sqlType, CallableStatementMapper mapper) Register a named output parameter.setFetchSize
(int fetchSize) Specify the fetch size for the call.setMaxFieldSize
(int maxFields) Specify the maximum field size in the result set.setMaxRows
(int maxRows) Specify the maximum number of rows the call is to return.Methods inherited from class org.jdbi.v3.core.statement.SqlStatement
bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bind, bindArray, bindArray, bindArray, bindArray, bindArray, bindArray, bindArray, bindArray, bindASCIIStream, bindASCIIStream, bindBean, bindBean, bindBeanList, bindBinaryStream, bindBinaryStream, bindBySqlType, bindBySqlType, bindByType, bindByType, bindByType, bindByType, bindByType, bindByType, bindFields, bindFields, bindList, bindList, bindList, bindList, bindList, bindList, bindList, bindMap, bindMethods, bindMethods, bindMethodsList, bindNamedArgumentFinder, bindNull, bindNull, bindNVarchar, bindNVarchar, bindPojo, bindPojo, bindPojo, bindPojo, bindPojo, bindPojo, cleanupHandleCommit, cleanupHandleRollback, defineList, defineList, defineNamedBindings, setQueryTimeout, toString
Methods inherited from interface org.jdbi.v3.core.config.Configurable
addCustomizer, configure, define, getConfig, registerArgument, registerArgument, registerArrayType, registerArrayType, registerArrayType, registerArrayType, registerCodecFactory, registerCollector, registerCollector, registerColumnMapper, registerColumnMapper, registerColumnMapper, registerColumnMapper, registerColumnMapper, registerColumnMapper, registerExtension, registerRowMapper, registerRowMapper, registerRowMapper, registerRowMapper, setMapKeyColumn, setMapValueColumn, setSqlArrayArgumentStrategy, setSqlLogger, setSqlParser, setTemplateEngine, setTimingCollector
-
Constructor Details
-
Call
-
Call
Backwards compatible constructor that takes an explicit string argument.- See Also:
-
-
Method Details
-
registerOutParameter
Register a positional output parameter.- Parameters:
position
- the parameter position (zero-based)sqlType
- an SQL type constant as defined byTypes
or by the JDBC vendor.- Returns:
- self
-
registerOutParameter
Register a positional output parameter.- Parameters:
position
- the parameter position (zero-based)sqlType
- an SQL type constant as defined byTypes
or by the JDBC vendor.mapper
- a mapper which converts theCallableStatement
to a desired output type.- Returns:
- self
-
registerOutParameter
Register a named output parameter.- Parameters:
name
- the parameter namesqlType
- an SQL type constant as defined byTypes
or by the JDBC vendor.- Returns:
- self
-
registerOutParameter
Register a named output parameter.- Parameters:
name
- the parameter namesqlType
- an SQL type constant as defined byTypes
or by the JDBC vendor.mapper
- a mapper which converts theCallableStatement
to a desired output type.- Returns:
- self
-
invoke
Invoke the callable statement. Note that the statement will be cleaned up, so cursor-typed values may not work.- Returns:
- the output parameters resulting from the invocation.
-
invoke
Invoke the callable statement and process itsOutParameters
results. -
invoke
Invoke the callable statement and process itsOutParameters
results, returning a computed value of typeT
. -
setFetchSize
Specify the fetch size for the call. This should cause the results to be fetched from the underlying RDBMS in groups of rows equal to the number passed. This is useful for doing chunked streaming of results when exhausting memory could be a problem.- Parameters:
fetchSize
- the number of rows to fetch in a bunch- Returns:
- the modified call
- Since:
- 3.43.0
-
setMaxRows
Specify the maximum number of rows the call is to return. This uses the underlying JDBCStatement.setMaxRows(int)
}.- Parameters:
maxRows
- maximum number of rows to return- Returns:
- modified call
- Since:
- 3.43.0
-
setMaxFieldSize
Specify the maximum field size in the result set. This uses the underlying JDBCStatement.setMaxFieldSize(int)
- Parameters:
maxFields
- maximum field size- Returns:
- modified call
- Since:
- 3.43.0
-
concurrentUpdatable
Specify that the result set should be concurrent updatable. This will allow the update methods to be called on the result set produced by this Call.- Returns:
- the modified call
- Since:
- 3.43.0
-
getHandle
-
getConfig
Description copied from interface:Configurable
Returns the configuration registry associated with this object.- Specified by:
getConfig
in interfaceConfigurable<This>
- Returns:
- the configuration registry associated with this object.
-
getContext
Returns the statement context associated with this statement.- Returns:
- the statement context associated with this statement.
-
attachToHandleForCleanup
Registers with the handle for cleaning when the handle is closed.
There are some situations where Statements need to be cleaned up to avoid resource leaks. This method registers the current Statement it with the Handle. If the statement or the context are cleaned by themselves, it will automatically unregister, so in normal operations, resources should not pool for cleanup with the Handle.- Since:
- 3.35.0
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-
equals
-
hashCode
public final int hashCode()
-