加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Apache Camel示例在表中插入一行

发布时间:2020-12-14 05:58:49 所属栏目:Java 来源:网络整理
导读:我想将exchange.body插入到数据库表中,以获取我的路由条件之一. 是否有任何示例/教程的camel-jdbc组件插入邮件正文? 我可以导入SQL语句本身并将exchange.body传递给它吗? 我看了http://camel.apache.org/jdbc.html的例子,但无法理解. 这里的Spring例子对我
我想将exchange.body插入到数据库表中,以获取我的路由条件之一.

>是否有任何示例/教程的camel-jdbc组件插入邮件正文?
>我可以导入SQL语句本身并将exchange.body传递给它吗?

我看了http://camel.apache.org/jdbc.html的例子,但无法理解.

这里的Spring例子对我来说很困惑.我没理解为什么它将主体设置为SQL查询并再次从类路径导入一些查询. (这里没有提到插入查询示例.)

解决方法

您可能需要在插入之前对有效负载进行一些重组,因此使用Camel中的任何方法进行转换以将主体设置为适当的INSERT语句可能没有问题.

重要的是您的传入消息具有什么样的有效负载结构.在基本情况下 – 它是一个字符串 – 它应该相当简单

// In a Java bean/processor before the JDBC endpoint.
// Update: make sure to sanitize the payload from SQL injections if it contains user inputs or external data not generated by trusted sources.
exchange.getIn().setBody("INSERT INTO MYTABLE VALUES('" + exchange.getIn().getBody(String.class) + "','fixedValue',1.0,42)");

如果您的消息包含复杂的数据结构,则此代码当然会更复杂,但它与常规应用程序生成SQL查询的方式几乎相同.

您要引用的类路径示例

<jdbc:embedded-database id="testdb" type="DERBY">
        <jdbc:script location="classpath:sql/init.sql"/>
 </jdbc:embedded-database>

简单地说明如何通过启动嵌入式数据库服务器(Apache Derby)来测试JDBC组件,并使用一些初始数据(sql / init.sql文件)填充它.这部分实际上不是核心jdbc组件的一部分,而只是在文档中,无需配置数据库服务器和设置JDBC连接属性即可启动并运行示例.

也就是说,您可能希望将SQL组件用于更复杂的场景.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读