首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用useMessageBodyForSql的Camel - camel-sql批插入

使用useMessageBodyForSql的Camel - camel-sql批插入
EN

Stack Overflow用户
提问于 2015-10-27 18:23:18
回答 1查看 5.2K关注 0票数 1

我在文档here中读到

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

从Camel 2.16开始,您可以使用选项SQL,该选项允许将消息体用作SQL语句,然后必须在具有键SqlConstants.SQL_PARAMETERS的标头中提供SQL参数。这使SQL组件能够更动态地工作,因为SQL查询来自消息体。

我有以下路线:

代码语言:javascript
复制
  from("direct:processLine")
            .setHeader(SqlConstants.SQL_PARAMETERS, simple("${body}"))
            .setBody(constant("INSERT INTO SOME_TABLE "
                    " (Param1, Param2) " +
                    " values " +
                    " (:?Param1,:?Param2)"))
            .to("sql://query?useMessageBodyForSql=true&batch=true&dataSource=dataSource");

主体是与参数列表匹配的键/值的映射。

这是可行的,但并不像预期的那样。

每一行都是一个接一个地插入,而不是预期的批量插入。这种选择的组合可能吗?

如果不可能,有什么替代方法可以实现这一点呢?

EN

回答 1

Stack Overflow用户

发布于 2015-11-04 04:10:52

当您使用sql时,它将触发多个insert语句来一个接一个地处理。试着使用orm,比如mybatis或ibatis。

甚至你也可以创建一个dao类。调用sqlSession将所有映射值传递给orm,以便作为批处理插入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33365351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档