gpt4 book ai didi

sql - Spring 批处理 : Passing runtime parameters to query in ItemReader

转载 作者:行者123 更新时间:2023-12-04 22:36:54 27 4
gpt4 key购买 nike

我有一个 spring 批处理程序,它从一个数据库读取并写入一个文件。

它有项目阅读器,如下所示:

<beans:bean id="myItemReader" class="org.springframework.batch.item.database.JdbcCursorItemReader">
<beans:property name="dataSource" ref="jobRepository-dataSource" />
<beans:property name="sql" value="${dbTofileDataReadSQL}"/>
<beans:property name="rowMapper">
<beans:bean class="com.mypackage.MyRowMapper" />
</beans:property>
</beans:bean>

sql是这样的:
select one, two, three, four from myTable where business_date='12/12/11'

这一行将进入我的属性文件:
dbTofileDataReadSQL = select one, two, three, four from myTable where business_date='12/12/11'

如何在项目阅读器中在运行时传递此业务日期,以便将其添加到项目阅读器中。

谢谢阅读!!

最佳答案

您可以使用 late-binding with step scope或简单的 PropertyPlaceholderConfigurer

<bean id="placeholderProperties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="path to your properties file, either classpath: ... or c:/... " />
</bean>

如果您的属性文件中需要多行条目,请像这样
# sql, multiline property with \
sql=\
SELECT \
ID, \
NAME \
FROM TEST \
ORDER BY ID

或者从 Spring 3 开始,您可以使用 SpEL:
<util:properties id="myProperties" location="..." />
...
<beans:bean ...
<beans:property name="sql" value="#{myProperties.sql}"/>
</beans:bean>

关于sql - Spring 批处理 : Passing runtime parameters to query in ItemReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8381908/

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