gpt4 book ai didi

java - 如何将硬编码的 SQL 查询传递到 JdbcBatchItemWriter 中?

转载 作者:行者123 更新时间:2023-12-01 10:49:25 28 4
gpt4 key购买 nike

现在我有这个:

<bean id="hardcodedQuery" 
class="org.springframework.batch.item.database.JdbcBatchItemWriter">
<property name="dataSource" ref="dataSource" />
<property name="sql">
<value>
<![CDATA[
DELETE from GENERIC_TABLE
WHERE id = 999
]]>
</value>
</property>
<property name="itemSqlParameterSourceProvider">
<bean
class="org.springframework.batch.item.database.BeanPropertyItemSqlParameterSourceProvider" />
</property>
</bean>

但我不断收到 java.lang.IllegalArgumentException,表示我的 SQL 查询已参数化。我知道他们希望我向读者提供一些引用,并在命令中包含 :randomVariable,但我坚决反对这个明显的要求。我错了吗?有解决方法吗?或者我是否必须为我的 bean 使用完全不同的类?

这是错误消息:

Caused by: java.lang.IllegalArgumentException: Using SQL statement with '?' placeholders requires an ItemPreparedStatementSetter

谢谢!

最佳答案

简短的回答是,这个类(class)并不适合您想要做的事情。 ItemWriter 合约假定基于项目的处理,这意味着您需要参数化每个项目的 SQL。如果您只想运行删除语句,请使用使用 JdbcTemplateTasklet 实现。

关于java - 如何将硬编码的 SQL 查询传递到 JdbcBatchItemWriter 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34005251/

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