323.3. 消息正文处理

SQL 组件会尝试将消息正文转换为 java.util.Iterator 类型的对象,然后使用这个迭代器填充查询参数(其中每个查询参数由端点 URI 中的 # 符号(或配置了占位符)表示。如果消息正文不是数组或集合,则转换会导致迭代一个对象(即正文本身)。

例如,如果消息正文是 java.util.List 的实例,列表中的第一个项将替换到 SQL 查询中的第一个出现的 # 查询中,则列表中的第二个项将被替换为 # 的第二个位置,以此类推。

如果 批处理 设置为 true,则入站消息正文的解释稍为 - 而不是参数程序,组件需要含有参数迭代器的迭代器;外部器的大小决定批处理大小。

从 Camel 2.16 开始,您可以使用 选项 useMessageBodyForSql 将消息正文用作 SQL 语句,然后在带有键 SqlConstants.SQL_PARAMETERS 的标头中提供 SQL 参数。这使得 SQL 组件能够在消息正文中时更动态地工作。