0
A
回答
0
更新或刪除操作沒有區別,只有sql更改;如此簡單的回答你的問題將是肯定的。 下面的代碼片段可能有助於滿足基本需求,前提是您要從Book表中刪除。
public class BookJdbcItemWriter implements ItemWriter<Book> {
private static final String DELETE_BOOK = "delete from Book where id = ?";
private JdbcTemplate jdbcTemplate;
public BookJdbcItemWriter(DataSource dataSource) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
}
public void write(List<? extends Book> items) throws Exception {
for(Book item : items) {
int updated = jdbcTemplate.update(DELETE_BOOK,item.getId());
}
}
}
3
Serkans答案是正確的,但也有一些更多的可能性與SQL批處理
- 你可以使用spring-jdbc-batch-template而不是正常的JDBC模板
- ,你可以直接使用spring-batch-jdbc-item-writer看到工作示例代碼
使用spring批處理xml配置和java代碼的代碼示例
<bean id="itemWriter" class="org.springframework.batch.item.database.JdbcBatchItemWriter">
<property name="dataSource" ref="dataSource" />
<property name="sql">
<!-- Why CDATA?
because < etc. is not allowed for xml values
when you use < xml parser will work, but
now the sql won't because of the & spring assumes
a placeholder, see
- AbstractSqlPagingQueryProvider.init(...)
- JdbcParameterUtils.countParameterPlaceholders(...)
-->
<value>
<![CDATA[
DELETE FROM TEST
WHERE id = ?
and sub.id = ?
and ...
]]>
</value>
</property>
<property name="itemPreparedStatementSetter">
<bean class="...FieldSetItemPreparedStatementSetter" />
</property>
</bean>
/**
* Implementation for {@link ItemPreparedStatementSetter},
* sets the values from {@link FieldSet}.
*
*/
public class FieldSetItemPreparedStatementSetter implements ItemPreparedStatementSetter<FieldSet> {
/** {@inheritDoc} */
@Override
public void setValues(FieldSet item, PreparedStatement ps) throws SQLException {
for (int i = 0; i < item.getValues().length; i++) {
// PreparedStatements start with 1
ps.setObject(i + 1, item.getValues()[i]);
}
}
}
相關問題
- 1. 使用彈簧刪除批量記錄jdbc
- 2. 彈簧批次:從讀取跳過記錄
- 3. 對同一條記錄執行多次彈簧批量ItemReader
- 4. 通過ID刪除記錄?
- 5. 彈簧批次 - ORA-08177
- 6. 通過的has_many刪除記錄:通過
- 7. 彈簧批量導入csv到數據庫刪除記錄,如果不是csv
- 8. 彈簧批量多行記錄項作家,每個記錄
- 9. 彈簧批處理 - 在處理中跳過記錄
- 10. 記錄跳過相同的彈簧批處理作業
- 11. 兩次下載的彈簧批次
- 12. MVC刪除記錄彈出
- 13. 在ManyToMany關係中刪除記錄彈簧數據jpa
- 14. 與彈簧集成啓動競賽條件彈簧批次
- 15. 使用Log4j2記錄彈簧
- 16. 刪除通過批量
- 17. 爲什麼批量刪除記錄比批量刪除更好?
- 18. 無法通過PHP刪除mysql記錄
- 19. 使用ajax通過ID刪除記錄
- 20. 從哪裏通過id刪除記錄?
- 21. 通過查詢從Elasticsearch刪除記錄
- 22. 通過Mulesoft ESB從Salesforce刪除記錄
- 23. 如何通過其OID刪除記錄?
- 24. 卡桑德拉通過彈簧配置查詢日誌記錄
- 25. 通過彈簧集成來遍歷文件或記錄列表
- 26. 彈簧批次 - 處理器鏈
- 27. 彈簧批次對象創建
- 28. 彈簧批次 - 錯誤/上MultiResourcePartitioner
- 29. 石英+春季批次彈簧開機
- 30. 使用彈簧批次時分叉JVM