1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/selfly-sonsure-dumper

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
persist-interceptor.md 2.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 28.11.2024 13:43 e04b5c0

Jdbc查询自定义 типа преобразователя

Описание

Можно выполнять логику предварительной и последующей обработки при выполнении SQL.

Интерфейс описания

Содержит два метода, которые вызываются до и после выполнения SQL соответственно.

CommandContext содержит всю информацию о текущем выполняемом SQL, включая параметры. Изменение его содержимого повлияет на поведение выполнения SQL.

Может быть несколько перехватчиков. Если метод executeBefore одного из них возвращает значение false, фактическая операция с базой данных не будет выполнена, но метод executeAfter всё равно будет выполнен, а commandResult будет иметь значение null.

/**
* @author selfly
*/
public interface PersistInterceptor {

    /**
    * Вызов перед выполнением
    *
    * @param dialect        the dialect
    * @param commandContext the command context
    * @param commandType    the command type
    * @return the boolean
    */
    default boolean executeBefore(String dialect, CommandContext commandContext, CommandType commandType) {
        return true;
    }

    /**
    * Вызов после выполнения, возвращаемый результат заменит фактический результат запроса
    *
    * @param dialect        the dialect
    * @param commandContext the command context
    * @param commandType    the command type
    * @param commandResult  the command result
    * @return the object
    */
    default Object executeAfter(String dialect, CommandContext commandContext, CommandType commandType, Object commandResult) {
        return commandResult;
    }
}

При объявлении JdbcEngine можно добавить необходимые перехватчики:

JdbcTemplateEngineConfigImpl jdbcTemplateEngineConfig = new JdbcTemplateEngineConfigImpl();
jdbcTemplateEngineConfig.setDataSource(getDataSource());
final List<PersistInterceptor> persistInterceptors = new ArrayList<>();
// Добавляем необходимые перехватчики
persistInterceptors.add(new XXXInterceptor())
jdbcTemplateEngineConfig.setPersistInterceptors(persistInterceptors);
defaultJdbcEngine = new JdbcEngineImpl(jdbcTemplateEngineConfig);

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/selfly-sonsure-dumper.git
git@api.gitlife.ru:oschina-mirror/selfly-sonsure-dumper.git
oschina-mirror
selfly-sonsure-dumper
selfly-sonsure-dumper
master