Spring批处理xml repositoryitemwriter架构占位符表单属性
需要从spring批处理应用程序的属性文件中获取架构名称。 其中,对于MSSQL数据库,dev和prod的架构名称不同 xml中的作业配置如下所示Spring批处理xml repositoryitemwriter架构占位符表单属性,spring,spring-mvc,spring-data,spring-batch,Spring,Spring Mvc,Spring Data,Spring Batch,需要从spring批处理应用程序的属性文件中获取架构名称。 其中,对于MSSQL数据库,dev和prod的架构名称不同 xml中的作业配置如下所示 <bean id="dataItemWriter" class="org.springframework.batch.item.database.JdbcBatchItemWriter"> <property name="assertUpdates" value="true" /> <property n
<bean id="dataItemWriter" class="org.springframework.batch.item.database.JdbcBatchItemWriter">
<property name="assertUpdates" value="true" />
<property name="itemPreparedStatementSetter">
<bean class="org.test.batch.model.ItemStatementMapper" />
</property>
<property name="sql" >
<value>
<![CDATA[
INSERT INTO dbo.EMPLOYEE
(PROJECT_NAME
,APP_NAME
,EMPLOYEE_NAME)
values (?,?,?)
]]>
</value>
</property>
<property name="dataSource" ref="dataDataSource" />
</bean>
模式名dbo应该从proprieties文件中检索,以便DEV和PROD可以在配置中更改它我不认为需要将值放入CDATA块,查询中没有特殊的xml字符。下面是一个例子:。所以在你的情况下,应该是这样的:
<bean id="dataItemWriter" class="org.springframework.batch.item.database.JdbcBatchItemWriter">
<property name="assertUpdates" value="true" />
<property name="itemPreparedStatementSetter">
<bean class="org.test.batch.model.ItemStatementMapper" />
</property>
<property name="sql" >
<value>
INSERT INTO dbo.EMPLOYEE (PROJECT_NAME ,APP_NAME ,EMPLOYEE_NAME) values (?,?,?)
</value>
</property>
<property name="dataSource" ref="dataDataSource" />
</bean>
这回答了你的问题吗?但在这里,我在CDATA内的查询中进行了替换。占位符将不起作用。我不认为有必要将值放入CDATA块,查询中没有特殊的xml字符。下面是一个例子:。如果可能发生这种情况,您可以将查询外部化到属性文件中,在该文件中进行替换。可以通过删除CDATA来执行此操作。谢谢你这么说。我加了一个答案,请接受。