gpt4 book ai didi

spring-batch - 使用带有 NamedParameters 的 Spring Batch JdbcCursorItemReader

转载 作者:行者123 更新时间:2023-12-04 05:12:08 25 4
gpt4 key购买 nike

Spring 批处理 JdbcCursorItemReader 可以接受 PreparedStatementSetter :

<bean id="reader" class="org.springframework.batch.item.database.JdbcCursorItemReader">
<property name="dataSource" ref="..." />
<property name="sql" value="SELECT * FROM test WHERE col1 = ?">
<property name="rowMapper" ref="..." />
<property name="preparedStatementSetter" ref="..." />
</bean>

如果 sql 使用 ,这会很好。 ? 作为占位符,如上例所示。但是,我们预先存在的 sql 使用命名参数,例如SELECT * FROM test WHERE col1 = :参数
.

有没有办法让 JdbcCursorItemReader 与 一起工作?命名PreparedStatementSetter 而不是一个简单的 PreparedStatementSetter?

谢谢

最佳答案

你可以试试jobParameters .在这种情况下,您不需要任何 PreparedStatementSetter .

<bean id="reader" class="org.springframework.batch.item.database.JdbcCursorItemReader">
<property name="dataSource" ref="..." />
<property name="sql" value="SELECT * FROM test WHERE col1 = #{jobParameters['col1']">
<property name="rowMapper" ref="..." />
<property name="preparedStatementSetter" ref="..." />
</bean>

运行作业时传递值
JobParameters param = new JobParametersBuilder().addString("col1", "value1").toJobParameters();

JobExecution execution = jobLauncher.run(job, param);

关于spring-batch - 使用带有 NamedParameters 的 Spring Batch JdbcCursorItemReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23222353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com