class MysqlConfigurator {

    public void setup() {
        try (
                Connection connection = connectionProvider.getConnection();
                Statement stmt = connection.createStatement()
        ) {
            List<String> tableColumnNames = tableMetadata.getColumnNames(tableName);
            ReactiveTrigger insertTrigger = ReactiveTriggerFactory.afterInsert(tableName, tableColumnNames);
            ReactiveTrigger updateTrigger = ReactiveTriggerFactory.afterUpdate(tableName, tableColumnNames);
            ReactiveTrigger deleteTrigger = ReactiveTriggerFactory.afterDelete(tableName, tableColumnNames);

            stmt.execute(insertTrigger.getCreateSql());
            stmt.execute(updateTrigger.getCreateSql());
            stmt.execute(deleteTrigger.getCreateSql());
        } catch (SQLException sqle) {
            throw new ConfigurationException("Couldn't configure table " + tableName + " as a reactive source", sqle);
        }
    }

    public  MysqlConfigurator(ConnectionProvider connectionProvider, String tableName);

}