All Downloads are FREE. Search and download functionalities are using the official Maven repository.

uk.co.mruoc.promo.repository.account.mysql.AccountUpdater Maven / Gradle / Ivy

The newest version!
package uk.co.mruoc.promo.repository.account.mysql;

import lombok.RequiredArgsConstructor;
import uk.co.mruoc.promo.entity.account.Account;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Collection;
import java.util.List;

@RequiredArgsConstructor
public class AccountUpdater {

    private final BatchBuilder batchBuilder;

    public AccountUpdater() {
        this(new BatchBuilder());
    }

    public void update(Connection connection, Collection accounts) throws SQLException {
        try (var statement = connection.prepareStatement("INSERT INTO account (id) VALUES (?)")) {
            List> batches = batchBuilder.toBatches(accounts);
            update(statement, batches);
        }
    }

    private void update(PreparedStatement statement, List> batches) throws SQLException {
        for (var batch : batches) {
            for (var account : batch) {
                statement.setString(1, account.getId());
                statement.addBatch();
            }
            statement.executeBatch();
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy