326.4. 消息正文处理
SQL 组件尝试将消息正文转换为 java.util.Iterator 类型的对象,然后使用此迭代器填充查询参数(每个查询参数都由端点 URI 中的 # 符号(或配置的占位符)表示。如果消息正文不是数组或集合,则转换会导致迭代一个对象,这是正文本身。
例如,如果消息正文是 java.util.List 的实例,则列表中的第一项将被替换为 SQL 查询中的第一个出现的 #,则列表中的第二个项目将被替换为 # 的第二个位置,以此类推。
如果 batch 设为 true,则入站消息正文更改的解释稍有 - 而非参数器的迭代器,则组件需要包含参数迭代器的迭代器;外部器的大小决定了批处理大小。
从 Camel 2.16 开始,您可以使用选项 useMessageBodyForSql,允许使用消息正文作为 SQL 语句,然后 SQL 参数必须在带有键 SqlConstants.SQL_PARAMETERS 的标头中提供。这允许 SQL 组件更有效地运行,因为 SQL 查询来自消息正文。