Package org.jdbi.v3.core.statement
Class PreparedBatch
- All Implemented Interfaces:
Closeable,AutoCloseable,Configurable<PreparedBatch>,ResultBearing
Represents a prepared batch statement. Multiple bindings are added to the
compiled statement and then executed in a single operation. This is, generally,
a very efficient way to execute large numbers of the same statement where
the statement only varies by the arguments bound to it.
The statement starts with an empty binding. You bind a single batch of parameters
with the usual
SqlStatement binding methods, and then call
add() to add the current binding as a batch and then clear it.
An entire batch can be bound and added in one go with add(Map)
or add(Object...).-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classprivate static final classNested classes/interfaces inherited from class org.jdbi.v3.core.statement.BaseStatement
BaseStatement.StatementCustomizerInvocation -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final List<PreparedBinding>(package private) final Map<NamedArgumentFinderFactory.PrepareKey,Function<String, Optional<Function<Object, Argument>>>> Fields inherited from class org.jdbi.v3.core.statement.SqlStatement
stmtFields inherited from class org.jdbi.v3.core.statement.BaseStatement
typedThis -
Constructor Summary
ConstructorsConstructorDescriptionPreparedBatch(Handle handle, CharSequence sql) PreparedBatch(Handle handle, String sql) Backwards compatible constructor that takes an explicit string argument. -
Method Summary
Modifier and TypeMethodDescriptionadd()Add the current binding as a saved batch and clear the binding.Bind arguments positionally, add the binding as a saved batch, and then clear the current binding.Bind arguments from a Map, add the binding as a saved batch, then clear the current binding.(package private) PreparedBatchbindNamedArgumentFinder(NamedArgumentFinderFactory factory, String prefix, Object value, Type type, Supplier<NamedArgumentFinder> backupArgumentFinder) buildArgument(QualifiedType<?> type) int[]execute()Execute the batch and return the number of rows affected for each batch part.<R> Rexecute(ResultProducer<R> producer) Executes the batch, returning the result obtained from the givenResultProducer.private <R> Rexecute(ResultProducer<R> producer, Consumer<PreparedBatch.ExecutedBatch> batchConsumer) Execute the batch and return the mod counts as inexecute, but as a Jdbi result iterator instead of an array.executeAndReturnGeneratedKeys(String... columnNames) Deprecated.executePreparedBatch(String... columnNames) Execute the batch and give access to any generated keys returned by the operation.protected PreparedBindingprivate PreparedBatch.ExecutedBatch<R> RscanResultSet(ResultSetScanner<R> resultSetScanner) Invokes the mapper with a result set supplier, and returns the value returned by the mapper.intsize()Returns the number of bindings in this batch.Methods inherited from class org.jdbi.v3.core.statement.SqlStatement
afterExecution, beforeBinding, beforeExecution, beforeTemplating, 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, cleanupStatement, createStatement, defineList, defineList, defineNamedBindings, getSql, internalExecute, mapperForType, mapperForType, mapperForType, parseSql, setQueryTimeout, toStringMethods inherited from class org.jdbi.v3.core.statement.BaseStatement
addCustomizers, attachToHandleForCleanup, callCustomizers, cleanUpForException, close, equals, getConfig, getContext, getHandle, hashCodeMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods 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, setTimingCollectorMethods inherited from interface org.jdbi.v3.core.result.ResultBearing
collectInto, collectInto, collectInto, collectRows, map, map, map, mapTo, mapTo, mapTo, mapTo, mapToBean, mapToMap, mapToMap, mapToMap, reduceResultSet, reduceRows, reduceRows, reduceRows
-
Field Details
-
bindings
-
preparedFinders
-
-
Constructor Details
-
PreparedBatch
-
PreparedBatch
Backwards compatible constructor that takes an explicit string argument.- See Also:
-
-
Method Details
-
bindNamedArgumentFinder
PreparedBatch bindNamedArgumentFinder(NamedArgumentFinderFactory factory, String prefix, Object value, Type type, Supplier<NamedArgumentFinder> backupArgumentFinder) - Overrides:
bindNamedArgumentFinderin classSqlStatement<PreparedBatch>
-
getBinding
- Overrides:
getBindingin classSqlStatement<PreparedBatch>
-
buildArgument
-
scanResultSet
Description copied from interface:ResultBearingInvokes the mapper with a result set supplier, and returns the value returned by the mapper.- Specified by:
scanResultSetin interfaceResultBearing- Type Parameters:
R- result type returned by the mapper.- Parameters:
resultSetScanner- result set scanner- Returns:
- the value returned by the mapper.
-
execute
public int[] execute()Execute the batch and return the number of rows affected for each batch part. Note that some database drivers might return special values likeStatement.SUCCESS_NO_INFOorStatement.EXECUTE_FAILED.- Returns:
- the number of rows affected per batch part
- See Also:
-
executeAndGetModCount
Execute the batch and return the mod counts as inexecute, but as a Jdbi result iterator instead of an array.- Returns:
- the number of rows affected per batch part
- See Also:
-
executeAndReturnGeneratedKeys
Deprecated.UseexecutePreparedBatch(String...)which has the same functionality but also returns the per-batch modified row counts.Execute the batch and give access to any generated keys returned by the operation.- Parameters:
columnNames- The column names for generated keys.- Returns:
- A
ResultBearingobject that can be used to access the results of the batch.
-
executePreparedBatch
Execute the batch and give access to any generated keys returned by the operation.- Parameters:
columnNames- The column names for generated keys.- Returns:
- A
BatchResultBearingobject that can be used to access the results of the batch and the per-batch modified row counts.
-
execute
Executes the batch, returning the result obtained from the givenResultProducer.- Type Parameters:
R- the type of the result- Parameters:
producer- the result producer.- Returns:
- value returned by the result producer.
-
execute
private <R> R execute(ResultProducer<R> producer, Consumer<PreparedBatch.ExecutedBatch> batchConsumer) -
internalBatchExecute
-
add
Add the current binding as a saved batch and clear the binding.- Returns:
- this
-
add
Bind arguments positionally, add the binding as a saved batch, and then clear the current binding.- Parameters:
args- the positional arguments to bind- Returns:
- this
-
add
Bind arguments from a Map, add the binding as a saved batch, then clear the current binding.- Parameters:
args- map to bind arguments from for named parameters on the statement- Returns:
- this
-
size
public int size()Returns the number of bindings in this batch.- Returns:
- the number of bindings in this batch.
-
executePreparedBatch(String...)which has the same functionality but also returns the per-batch modified row counts.