Module org.itsallcode.jdbc
Package org.itsallcode.jdbc.batch
Class RowPreparedStatementBatchBuilder<T>
java.lang.Object
org.itsallcode.jdbc.batch.RowPreparedStatementBatchBuilder<T>
- Type Parameters:
T- row type
Builder for
PreparedStatement batch jobs for a Stream or
Iterable of row objects using e.g. INSERT or UPDATE
statements.
Create a new instance using
DbOperations.preparedStatementBatch(Class).
-
Constructor Summary
ConstructorsConstructorDescriptionRowPreparedStatementBatchBuilder(Function<String, SimplePreparedStatement> statementFactory) Create a new instance. -
Method Summary
Modifier and TypeMethodDescriptionDefine table and column names used for generating theINSERTstatement.into(Identifier tableName, List<Identifier> columnNames) Define table and column names used for generating theINSERTstatement.mapping(ParamConverter<T> rowMapper) Define mapping how rows are converted toObject[]for inserting.mapping(RowPreparedStatementSetter<T> preparedStatementSetter) DefineRowPreparedStatementSetterthat sets values of aPreparedStatementfor each row.maxBatchSize(int maxBatchSize) Define maximum batch size, usingPreparedStatementBatchBuilder.DEFAULT_MAX_BATCH_SIZEas default.DefineIteratorof rows to insert.DefineStreamof rows to insert.Define the SQL statement to be used for the batch job, e.g.voidstart()Start the batch insert process using the given rows.
-
Constructor Details
-
RowPreparedStatementBatchBuilder
Create a new instance.- Parameters:
statementFactory- factory for creatingSimplePreparedStatement
-
-
Method Details
-
sql
Define the SQL statement to be used for the batch job, e.g.INSERTorUPDATE.- Parameters:
sql- SQL statement- Returns:
thisfor fluent programming
-
into
Define table and column names used for generating theINSERTstatement.- Parameters:
tableName- table namecolumnNames- column names- Returns:
thisfor fluent programming
-
into
Define table and column names used for generating theINSERTstatement.- Parameters:
tableName- table namecolumnNames- column names- Returns:
thisfor fluent programming
-
rows
DefineStreamof rows to insert.- Parameters:
rows- rows to insert- Returns:
thisfor fluent programming
-
rows
DefineIteratorof rows to insert.- Parameters:
rows- rows to insert- Returns:
thisfor fluent programming
-
mapping
Define mapping how rows are converted toObject[]for inserting.- Parameters:
rowMapper- row mapper- Returns:
thisfor fluent programming
-
mapping
public RowPreparedStatementBatchBuilder<T> mapping(RowPreparedStatementSetter<T> preparedStatementSetter) DefineRowPreparedStatementSetterthat sets values of aPreparedStatementfor each row.- Parameters:
preparedStatementSetter- prepared statement setter- Returns:
thisfor fluent programming
-
maxBatchSize
Define maximum batch size, usingPreparedStatementBatchBuilder.DEFAULT_MAX_BATCH_SIZEas default.- Parameters:
maxBatchSize- maximum batch size- Returns:
thisfor fluent programming
-
start
Start the batch insert process using the given rows.
-