2017-05-08 139 views
2

有沒有一種方法可以使用DSL指定JDBC出站通道適配器?使用DSL的彈簧集成JDBC出站通道適配器

例如

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

而且是有可能處理可以爲null參數(例如,如果一個字段爲空,替換爲空字符串值)。

回答

1

根據<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是可能的。

+0

謝謝Artem,這給了我更多的靈活性來定製插入。乾杯。 – Swordfish

相關問題