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

3
有没有一种使用DSL指定JDBC Outbound Channel Adapter的方法?
例如:
<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个回答

4
根据<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])");
    return handler;
}

@Bean
public IntegrationFlow jdbcFlow() {
      ...
      .handle(jdbcMessageHandler())
      ...
}
null -> empty string 可以通过自定义的 SqlParameterSourceFactory 实现。

谢谢Artem,这让我有更多的灵活性来定制插入。干杯。 - Swordfish

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接