使用DSL的Spring集成JDBC出站通道适配器

时间:2017-05-08 20:36:56

标签: spring-integration

有没有办法使用DSL指定JDBC出站通道适配器?

e.g。

<int-jdbc:outbound-channel-adapter
            query="insert into foos (id, status, name) values (:headers[id], 0, :payload[foo])"
            data-source="dataSource"
            channel="input"/>

也可以处理可能为null的参数(例如,如果字段为null,则替换空字符串值)。

1 个答案:

答案 0 :(得分:2)

根据<int-jdbc:outbound-channel-adapter>说明:

 <xsd:documentation>
            Configures a Consumer Endpoint for the
            'org.springframework.integration.jdbc.JdbcMessageHandler' for updating a
            database.
        </xsd:documentation>

我们有JdbcMessageHandler可以用作:

@Bean
public MessageHandler jdbcMessageHandler() {
    JdbcMessageHandler handler = new JdbcMessageHandler(this.dataSource,
       "insert into foos (id, status, name) values (:headers[id], 0, :payload[foo])");

}

@Bean
public IntegrationFlow jdbcFlow() {
      ...
      .handle(jdbcMessageHandler())
      ...
}

null -> empty string可以通过自定义SqlParameterSourceFactory