Перейти к основному содержимому
Руководство администратора
How To статьи
Установка и настройка
Компоненты
Руководство пользователя
Начало работы

SQL

Общее описание

Компонент SQL позволяет работать с базами данных, используя запросы JDBC. Разница между этим компонентом и компонентом JDBC заключается в том, что в случае SQL запрос является свойством конечной точки и использует полезную нагрузку сообщения в качестве параметров, передаваемых запросу.

Блок SQL может использоваться в качестве:

  • блока отправителя

  • блока получателя.

Настройка блока

В данном разделе описаны параметры блока SQL, которые необходимо заполнить при его настройке.

Базовые параметры

Название в UIНазвание атрибутаОписаниеЗначение по умолчаниюТип данных
Dynamic EndpointdynamicEndpoint

Доступен только для блоков-отправителей.

Параметр позволяет включить встроенную функциональность динамического определения вызываемоой конечной точки. При включении параметра структура блока меняется таким образом, что в коде вместо определения to проставляется toD, а значение самого вызываемого ресурса может собираться из переменной, например ${header.foo}.

FalseЛогическое значение
Patternpattern

Доступен только для блоков-отправителей.

Устанавливает стиль взаимодействия с присоединенной частью потока.

Возможные значения:

  • InOnly — отправить без подтверждения приемки. При выборе в отправленном yaml и в режиме просмотра кода будет виден параметр pattern на том же уровне, что и uri.

  • InОut — ждать подтверждения после отправки.

Список
Queryquery

Обязательный параметр

Исполняемый запрос. Этот запрос имеет приоритет над запросом, указанным в URI конечной точки.

Текст
ConnectionconnectionЭтот параметр позволяет выбрать предсозданное подключение к БД или создать новое с помощью визарда Connection Manager.Список
Allow Named ParametersallowNamedParametersОпределяет следует ли разрешать использование именованных параметров в запросах.TrueЛогическое значение
Output ClassoutputClassЗадает полный пакет и имя класса для использования в качестве преобразования, если значение Output Type – SelecTone.Строка
Output HeaderoutputHeaderПозволяет сохранить результат запроса в заголовке, а не в тексте сообщения. По умолчанию значение outputHeader == null и результат запроса сохраняется в тексте сообщения, весь уже существующий контент в тексте сообщения сбрасывается. Если задан параметр Output Header, то это значение используется в качестве имени заголовка для хранения результата запроса, а исходное тело сообщения сохраняется.Строка
Output TypeoutputType

Позволяет преобразовать выходные данные получателя или отправителя в SelectList как список карт соответствий (Map), или SelecTone как отдельный объект Java следующим образом:

  • Если запрос содержит только один столбец, то возвращается этот объект столбца JDBC. (например, SELECT COUNT( ) FROM PROJECT вернет объект Long.

  • Если запрос содержит более одного столбца, то он вернет отображение этого результата.

  • Если задан Output Class, то он преобразует результат запроса в объект Java bean, вызывая все сеттеры, соответствующие именам столбцов. Предполагается, что у вашего класса есть конструктор по умолчанию для создания экземпляра.

  • Если в результате запроса получено более одной строки, генерируется исключение Non-unique. StreamList передает результат запроса с помощью итератора. Это можно использовать вместе с блоком Split блоке в потоковом режиме для обработки результирующего набора в потоковом режиме.

Возможные значения

  • SelectList

  • SelectOne

  • StreamList

Список
Separatorseparator

Разделитель, который используется при определении значений параметров, которые находятся в теле сообщения, берется из текста сообщения (если тело сообщения имеет строковый тип.

Примечание:

Обратите внимание, что если вы используете именованные параметры, то вместо них используется тип Map. Значение по умолчанию - запятая.

,Строка
BatchbatchВключает или отключает пакетный режим.FalseЛогическое значение
NoopnoopОпределяет то, что результаты SQL-запроса будут игнорироваться и в качестве выходного сообщения для продолжения обработки будет использоваться входное сообщение.FalseЛогическое значение
Use Message Body For SqluseMessageBodyForSqlОпределяет следует ли использовать текст сообщения в качестве SQL, а затем заголовки в качестве параметров. Если эта опция включена, то SQL в uri не используется. Обратите внимание, что параметры запроса в тексте сообщения представлены вопросительным знаком вместо символа #.FalseЛогическое значение
Backoff Error ThresholdbackoffErrorThresholdКоличество последовательно полученных ошибок обработки, после которого включится режим пропуска запусков.Целое число
Backoff Idle ThresholdbackoffIdleThresholdКоличество последовательных запросов, которые не привели к созданию или обработке данных. После достижения установленного количества включится режим пропуска запусков.Целое число
Backoff MultiplierbackoffMultiplier

Позволяет обработчику по расписанию включать режим пропуска запусков при достижении числа последовательных пустых запросов/ошибок. Этот параметр определяет количество запусков, которые будут пропущены.

Когда используется этот параметр, также необходимо сконфигурировать backoffIdleThreshold и/или backoffErrorThreshold.

Целое число
DelaydelayКоличество миллисекунд перед следующим запуском.500Длинное целое число
GreedygreedyЕсли значение параметра установлено в True, то ScheduledPollConsumer запустится сразу же после того как предыдущий запуск обработал одно или несколько сообщений.FalseЛогическое значение
Initial DelayinitialDelayКоличество миллисекунд до первого запуска.1000Длинное целое число
Repeat CountrepeatCountОпределяет максимальное количество срабатываний. Таким образом, если вы установите значение 1, планировщик сработает только один раз. Если вы установите значение 5, он сработает только пять раз. Нулевое или отрицательное значение означает, что срабатывание происходит постоянно.0Целочисленное значение
Run Logging LevelrunLoggingLevel

Задает уровень логирования старта и финиша инициации потока.

Возможные значения:

  • TRACE

  • DEBUG

  • INFO

  • WARN

  • ERROR

  • OFF

Список
Scheduled Executor ServicescheduledExecutorServiceПозволяет настроить пользовательский / общий пул потоков для получателя. По умолчанию у каждого получателя есть свой собственный однопоточный пул потоков.
SchedulerschedulerПозволяет использовать cron-планировщик из компонента camel-spring или camel-quartz. Используйте value spring или quartz для встроенного планировщика.noneСтрока
Scheduler PropertiesschedulerPropertiesПрименяется для настройки дополнительных свойств планировщикаСтрока
Start SchedulerstartSchedulerОпределяет будет ли планировщик автоматически запускаться.TrueЛогическое значение
Time UnittimeUnit

Задает единицы измерения времени для параметров Initial Delay и Delay.

Возможные значения:

  • Nanoseconds

  • Microseconds

  • Milliseconds

  • Seconds

  • Minutes

  • Hours

  • Days

MillisecondsСписок
Use Fixed DelayuseFixedDelayОпределяет, используется ли фиксированная задержка или фиксированная скорость.TrueЛогическое значение

Расширенные параметры

Название в UIНазвание атрибута ОписаниеЗначение по умолчаниюТип данных
Lazy Start ProducerlazyStartProducer

Определяет должен ли отправитель стартовать в отложенном режиме (при получении первого сообщения). Отложенный запуск можно использовать в ситуациях, когда запуск отправителя может завершиться неудачей и привести к сбою при запуске маршрута. Если отложить запуск, то сбой при запуске можно будет обработать во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации.

Примечание:

При обработке первого сообщения создание и старт отправителя могут занять некоторое время и увеличить общее время обработки.

FalseЛогическое значение
Always Populate StatementalwaysPopulateStatementЕсли опция включена, то всегда вызывается метод populateStatement, включая случаи, когда нет ожидаемых параметров, которые нужно подготовить. Если это значение равно false, то populateStatement вызывается только в том случае, если необходимо задать 1 или более ожидаемых параметров; например, это позволяет избежать чтения тела сообщения/заголовков для SQL-запросов без параметров.FalseЛогическое значение
Parameters CountparametersCountЕсли значение этого параметра больше нуля, то это значение будет использоваться для замены параметров вместо запроса через JDBC metadata API. Это полезно, если поставщик JDBC не смог вернуть правильное количество параметров, тогда пользователь может переопределить его.Целочисленное значение
Placeholderplaceholder

Задает символ, который будет заменяться в SQL-запросе.

Примечание:

Это простая операция String.replaceAll() и синтаксический анализ SQL не требуется (строки, заключенные в кавычки, также изменятся).

#Строка
Prepare Statement StrategyprepareStatementStrategyПозволяет плагину использовать пользовательскую стратегию org.apache.camel.component.sql.SqlPrepareStatementStrategy для управления подготовкой запроса и подготовленным заявлением.Строка
Row Mapper FactoryrowMapperFactoryИнтерфейс, который определяет метод для сопоставления каждой строки результирующего набора (ResultSet) с соответствующим объектом Java.Строка
Template OptionstemplateOptionsНастраивает Spring JdbcTemplate с помощью пар ключ/значение из карты (Map).Строка
Use PlaceholderusePlaceholderОпределяет, следует ли использовать заполнитель и заменять все символы-заполнители предназначенными значениями в SQL-запросах.TrueЛогическое значение