如何从amq broker redhat路由或使用到postgresql?

如何从amq broker redhat路由或使用到postgresql?,postgresql,spring-boot,apache-camel,spring-camel,Postgresql,Spring Boot,Apache Camel,Spring Camel,我想使用来自AMQ 7队列的消息并将其插入postgresql数据库。我用的是春驼。到目前为止,我已经做到了 <route id="simple-route"> <from uri="amqp:queue:tes"/> <log id="route-log" message=">>> ${body} testing message in body"/> <to uri="amqp:queue:simpleQueu

我想使用来自AMQ 7队列的消息并将其插入postgresql数据库。我用的是春驼。到目前为止,我已经做到了

<route id="simple-route">
    <from uri="amqp:queue:tes"/>
    <log id="route-log" message=">>> ${body} testing message in body"/>
    <to uri="amqp:queue:simpleQueue"/>
    <log message="${in.body}" />
</route>



我不知道如何在uri中写入以插入postgre。队列中的数据是json类型的

要将数据直接插入数据库,您可以选择使用camel-sql组件

<to uri="sql:insert into postgre_table (record_id, record_text) values (:#${header.record_id}, :#${header.record_text})?dataSource=#PostgreDataSource"/>

您的数据源应该如下所示

<bean id="PostgreDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="org.postgresql.Driver"/>
    <property name="url" value="jdbc:postgresql://localhost:5432/postgre"/>
    <property name="username" value="user"/>
    <property name="password" value="password"/>
</bean>


它可以工作。但数据库中的数据为空。所以,我插入空数据。请检查我的amq中的插入头值,数据以json形式存储在正文中。标头不包含数据。我应该使用body吗?您应该使用您需要的,请注意,
record\u id
record\u text
只是示例名称。如果您想插入一些json字段,您必须从正文中检索此数据。我尝试插入标题消息id。它仍然插入null/
<bean id="PostgreDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="org.postgresql.Driver"/>
    <property name="url" value="jdbc:postgresql://localhost:5432/postgre"/>
    <property name="username" value="user"/>
    <property name="password" value="password"/>
</bean>