私はSpringバッチ2バージョンを使用しています。 JdbcCursorItemReaderを使用してデータベースからデータを読み取っています。データを正常にフェッチし、ファイルに書き込んでいます。は、バッチバッチのconfig xmlファイル内のプレースホルダに値を動的に置き換えます。
以下はJob.xmlファイルで定義されてitemReader豆 ::
<bean id="itemReader"
class="org.springframework.batch.item.database.JdbcCursorItemReader"
scope="step">
<property name="dataSource" ref="dataSource" />
<property name="sql"
value="select u.ID, u.USER_LOGIN, u.PASSWORD, u.AGE from USERS u" />
</property>
<property name="rowMapper">
<bean class="com.example.UserRowMapper" />
</property>
</bean>
ですが、問題は、私のクエリはかなり大きいです、ですので、私はちょうどxmlファイルのうち、そのクエリを維持したいと他のファイルまたはプロパティファイル(.property、yamlまたはxml)からそのクエリを取得します。
私は以下のようにXMLコードを書くことができるようにするため::
<bean id="itemReader" class="org.springframework.batch.item.database.JdbcCursorItemReader" scope="step">
<property name="dataSource" ref="dataSource" />
<property name="sql" value="$sql_query" />
</property><property name="rowMapper">
<bean class="com.example.UserRowMapper" />
</property>
</bean>
これを達成するための最良の方法は何ですか?
'$ {sql_query}'を書くだけです。 'sql_query'という名前のプロパティのプロパティファイルでそれを叩いて、アプリケーションを再度実行してください。 –
あなたはクエリにparamを渡す必要がありますか? –