StatementBatch.java
package org.itsallcode.jdbc.batch;
import org.itsallcode.jdbc.SimpleStatement;
/**
 * A batch handler for SQL statements.
 */
public class StatementBatch implements AutoCloseable {
    private final Batch batch;
    private final SimpleStatement statement;
    /**
     * Create a new instance.
     * 
     * @param statement    the statement
     * @param maxBatchSize maximum batch size
     */
    public StatementBatch(final SimpleStatement statement, final int maxBatchSize) {
        this.statement = statement;
        this.batch = new Batch(maxBatchSize, statement, statement::executeBatch);
    }
    /**
     * Add a new SQL statement to the batch.
     * 
     * @param sql SQL statement
     */
    public void addBatch(final String sql) {
        statement.addBatch(sql);
        this.batch.addBatch();
    }
    @Override
    public void close() {
        this.batch.close();
    }
}