有没有办法使用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,则替换空字符串值)。
答案 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
。