Spring batch 在Spring批处理查询中使用命名参数

Spring batch 在Spring批处理查询中使用命名参数,spring-batch,Spring Batch,我有一个spring批处理作业,其中一个步骤如下: <bean id="abstractReader" class="org.springframework.batch.item.database.JdbcCursorItemReader" abstract="true"> <property name="fetchSize" value="1000"/> <property name="verifyCursorPosition" value="tr

我有一个spring批处理作业,其中一个步骤如下:

<bean id="abstractReader" class="org.springframework.batch.item.database.JdbcCursorItemReader" abstract="true">
    <property name="fetchSize" value="1000"/>
    <property name="verifyCursorPosition" value="true"/>
    <property name="rowMapper">
        <bean class="org.springframework.jdbc.core.ColumnMapRowMapper"/>
    </property>
</bean>

<bean id="masterReader" parent="abstractReader" abstract="true">
    <property name="fetchSize" value="1000"/>
    <property name="dataSource" ref="masterDataSource"/>
</bean>

<bean id="abstractWriter" class="org.springframework.batch.item.database.JdbcBatchItemWriter" abstract="true">
    <property name="assertUpdates" value="false"/>
    <property name="itemPreparedStatementSetter">
        <bean class="org.springframework.batch.item.database.support.ColumnMapItemPreparedStatementSetter"/>
    </property>
</bean>

<bean id="masterWriter" parent="abstractWriter" abstract="true">
    <property name="dataSource" ref="masterDataSource"/>
</bean>

<bean id="tempWriter" parent="masterWriter" scope="step">
    <property name="sql" value="${insert_query}"/>
</bean>

<bean id="tempReader" parent="masterReader" scope="step">
    <property name="sql" value="${select_query}"/>
</bean>

<batch:step id="tempStep">
        <batch:tasklet>
            <batch:chunk commit-interval="100"
                         reader="tempReader"
                         writer="tempWriter"/>
        </batch:tasklet>
</batch:step>


有没有办法在查询中提供命名参数支持?目前JdbcCursorItemReader正在使用PreparedStatement。(太多?现在查询中)

使用
JdbcCursorItemReader
是没有办法的,但是您可以使用
JdbcPagingItemReader
来完成。您可以在以下文档中阅读有关该阅读器的更多信息: