如何从amq broker redhat路由或使用到postgresql?
我想使用来自AMQ 7队列的消息并将其插入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
<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>