作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
现在我有这个:
<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。如果您只想运行删除语句,请使用使用 JdbcTemplate
的 Tasklet
实现。
关于java - 如何将硬编码的 SQL 查询传递到 JdbcBatchItemWriter 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34005251/
我是一名优秀的程序员,十分优秀!