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