private void doInsert(SourceRecord record) throws SQLException {

        if (batchPS == null) {

            List columns = getColumns(record);
            int columnsNumber = columns.size();
            String columnsNames = columns.stream().collect(Collectors.joining(",")).toString();
            String sinkTableName = mappingSourceSinkTables.get(getSourceTableName(record).toLowerCase());
            StringBuilder sqlCmd = new StringBuilder();
            sqlCmd.append(String.format("INSERT INTO %s ( %s ) VALUES ( ", sinkTableName, columnsNames));
            for (int i = 0; i <= columnsNumber - 1; i++) {
                if (i > 0) sqlCmd.append(",");
                sqlCmd.append("?");
            }
            sqlCmd.append(" )");

            LOG.info("Inserting data with " + sqlCmd);

            batchPS = this.getConnection().prepareStatement(String.valueOf(sqlCmd));
        }

        // Bind values to the sqlStatement
        Struct value = ((Struct) record.value()).getStruct("after");
        bindValuesToBatchPS(value);
        batchPS.addBatch();

    }
Constructs the SqlManager.

@param opts   the ReplicaDB ToolOptions describing the user's requested action.
@param dsType
src/main/java/org/replicadb/manager/cdc/OracleManagerCDC.java