SQL
Общее описание
Компонент SQL позволяет работать с базами данных, используя запросы JDBC. Разница между этим компонентом и компонентом JDBC заключается в том, что в случае SQL запрос является свойством конечной точки и использует полезную нагрузку сообщения в качестве параметров, передаваемых запросу.
Блок SQL может использоваться в качестве:
-
блока отправителя
-
блока получателя.
Настройка блока
В данном разделе описаны параметры блока SQL, которые необходимо заполнить при настройке.
Базовые параметры блока SQL
| Название в UI (имя атрибута в коде) | Обязательный | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Query | Да | Исполняемый запрос. Этот запрос имеет приоритет над запросом, указанным в URI конечной точки. | Текст | |
| Connection | Этот параметр позволяет выбрать предсозданное подключение к БД или создать новое с помощью визарда Connection Manager. | Список | ||
| Allow Named Parameters | Определяет следует ли разрешать использование именованных параметров в запросах. | True | Логическое значение | |
| Output Class | Задает полный пакет и имя класса для использования в качестве преобразования, если значение Output Type – SelecTone. | Строка | ||
| Output Header | Позволяет сохранить результат запроса в заголовке, а не в тексте сообщения. По умолчанию значение outputHeader == null и результат запроса сохраняется в тексте сообщения, весь уже существующий контент в тексте сообщения сбрасывается. Если задан параметр Output Header, то это значение используется в качестве имени заголовка для хранения результата запроса, а исходное тело сообщения сохраняется. | Строка | ||
| Output Type | Позволяет преобразовать выходные данные получателя или отправителя в SelectList как список карт соответствий (Map), или SelecTone как отдельный объект Java следующим образом:
Возможные значения
| Список | ||
| Separator | Разделитель, который используется при определении значений параметров, которые находятся в теле сообщения, берется из текста сообщения (если тело сообщения имеет строковый тип. Примечание: Обратите внимание, что если вы используете именованные параметры, то вместо них используется тип Map. Значение по умолчанию - запятая. | , | Строка | |
| Batch | Включает или отключает пакетный режим. | False | Логическое значение | |
| Noop | Определяет то, что результаты SQL-запроса будут игнорироваться и в качестве выходного сообщения для продолжения обработки будет использоваться входное сообщение. | False | Логическое значение | |
| Use Message Body For Sql | Определяет следует ли использовать текст сообщения в качестве SQL, а затем заголовки в качестве параметров. Если эта опция включена, то SQL в uri не используется. Обратите внимание, что параметры запроса в тексте сообщения представлены вопросительным знаком вместо символа #. | False | Логическое значение | |
| Backoff Error Threshold | Количество последовательно полученных ошибок обработки, после которого включится режим пропуска запусков. | Целое число | ||
| Backoff Idle Threshold | Количество последовательных запросов, которые не привели к созданию или обработке данных. После достижения установленного количества включится режим пропуска запусков. | Целое число | ||
| Backoff Multiplier | Позволяет обработчику по расписанию включать режим пропуска запусков при достижении числа последовательных пустых запросов/ошибок. Этот параметр определяет количество запусков, которые будут пропущены. Когда используется этот параметр, также необходимо сконфигурировать backoffIdleThreshold и/или backoffErrorThreshold. | Целое число | ||
| Delay | Количество миллисекунд перед следующим запуском. | 500 | Длинное целое число | |
| Greedy | Если значение параметра установлено в True, то ScheduledPollConsumer запустится сразу же после того как предыдущий запуск обработал одно или несколько сообщений. | False | Логическое значение | |
| Initial Delay | Количество миллисекунд до первого запуска. | 1000 | Длинное целое число | |
| Repeat Count | Определяет максимальное количество срабатываний. Таким образом, если вы установите значение 1, планировщик сработает только один раз. Если вы установите значение 5, он сработает только пять раз. Нулевое или отрицательное значение означает, что срабатывание происходит постоянно. | 0 | Целочисленное значение | |
| Run Logging Level | Задает уровень логирования старта и финиша инициации потока. Возможные значения:
| Список | ||
| Scheduled Executor Service | Позволяет настроить пользовательский / общий пул потоков для получателя. По умолчанию у каждого получателя есть свой собственный однопоточный пул потоков. | |||
| Scheduler | Позволяет использовать cron-планировщик из компонента camel-spring или camel-quartz. Используйте value spring или quartz для встроенного планировщика. | None | ||
| Scheduler Properties | Применяется для настройки дополнительных свойств планировщика | Строка | ||
| Start Scheduler | Определяет будет ли планировщик автоматически запускаться. | True | Логическое значение | |
| Time Unit | Задает единицы измерения времени для параметров Initial Delay и Delay. Возможные значения:
| Milliseconds | Список | |
| Use Fixed Delay | Определяет, используется ли фиксированная задержка или фиксированная скорость. | True | Логическое значение |
Расширенные параметры блока SQL
| Название в UI (имя атрибута в коде) | Обязательный | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Lazy Start Producer | Определяет должен ли отправитель стартовать в отложенном режиме (при получении первого сообщения). Отложенный запуск можно использовать в ситуациях, когда запуск отправителя может завершиться неудачей и привести к сбою при запуске маршрута. Если отложить запуск, то сбой при запуске можно будет обработать во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации. Примечание: При обработке первого сообщения создание и старт отправителя могут занять некоторое время и увеличить общее время обработки. | False | Логическое значение | |
| Always Populate Statement | Если опция включена, то всегда вызывается метод populateStatement, включая случаи, когда нет ожидаемых параметров, которые нужно подготовить. Если это значение равно false, то populateStatement вызывается только в том случае, если необходимо задать 1 или более ожидаемых параметров; например, это позволяет избежать чтения тела сообщения/заголовков для SQL-запросов без параметров. | False | Логическое значение | |
| Parameters Count | Если значение этого параметра больше нуля, то это значение будет использоваться для замены параметров вместо запроса через JDBC metadata API. Это полезно, если поставщик JDBC не смог вернуть правильное количество параметров, тогда пользователь может переопределить его. | Целочисленное значение | ||
| Placeholder | Задает символ, который будет заменяться в SQL-запросе. Примечание: Это простая операция String.replaceAll() и синтаксический анализ SQL не требуется (строки, заключенные в кавычки, также изменятся). | # | Строка | |
| Prepare Statement Strategy | Позволяет плагину использовать пользовательскую стратегию org.apache.camel.component.sql.SqlPrepareStatementStrategy для управления подготовкой запроса и подготовленным заявлением. | Строка | ||
| Row Mapper Factory | Интерфейс, который определяет метод для сопоставления каждой строки результирующего набора (ResultSet) с соответствующим объектом Java. | Строка | ||
| Template Options | Настраивает Spring JdbcTemplate с помощью пар ключ/значение из карты (Map). | Строка | ||
| Use Placeholder | Определяет, следует ли использовать заполнитель и заменять все символы-заполнители предназначенными значениями в SQL-запросах. | True | Логическое значение |